C语言 枚举enum声明变量和使用(二)

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ 面向对象

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ 设计模式

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ STL

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 技术杂谈

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 常用函数


一.枚举enum简介

枚举:将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。枚举类型定义:

enum  枚举名
{
       枚举值表
};

在枚举值表中应列出所有可用值,也称为枚举元素

枚举值是常量,不能在程序中用赋值语句再对它赋值(不能修改)

枚举元素本身由系统定义了一个表示序号的数值从 0 开始顺序定义为0,1,2 …

举个例子:

//枚举下标重 0 开始
enum week{ Mon = 0, 
           Tues ,  //默认 Tues = 2
           Wed ,   //默认 Wed = 3
           Thurs , //默认 Thurs = 4
           Fri ,   //默认 Fri = 5
           Sat ,   //默认 Sat = 6
           Sun     //默认 Sun = 7
};

//枚举下标重 1 开始
enum week{ Mon = 1, 
           Tues ,    //默认 Tues = 2
           Wed ,     //默认 Wed = 3
           Thurs ,   //默认 Thurs = 4
           Fri = 50, 
           Sat ,     //默认 Sat = 51
           Sun       //默认 Sun = 52
};

二.枚举enum声明变量


1.枚举类型的定义和变量的声明分开

enum DAY
{
      MON=1, TUE, WED, THU, FRI, SAT, SUN
};


enum DAY yesterday;
enum DAY today;
enum DAY tomorrow; //变量 tomorrow的类型为枚举型enum DAY
enum DAY good_day, bad_day; //变量good_day和bad_day的类型均为枚举型enum DAY

2.类型定义与变量声明同时进行

enum //跟第一个定义不同的是,此处的标号DAY省略,这是允许的。
{
    saturday,
    sunday = 0,
    monday,
    tuesday,
    wednesday,
    thursday,
    friday
} workday; //变量workday的类型为枚举型enum DAY


enum week { Mon=1, Tue, Wed, Thu, Fri Sat, Sun} days; //变量days的类型为枚举型enum week


enum BOOLEAN { false, true } end_flag, match_flag; //定义枚举类型并声明了两个枚举型变量

3.用 typedef 关键字将枚举类型定义成别名,并利用该别名进行变量声明

typedef enum workday
{
    saturday,
    sunday = 0,
    monday,
    tuesday,
    wednesday,
    thursday,
    friday
} workday; //此处的workday为枚举型enum workday的别名
//定义变量
workday today, tomorrow; //变量today和tomorrow的类型为枚举型workday,也即enum workday


//enum workday中的workday可以省略:
typedef enum
{
    saturday,
    sunday = 0,
    monday,
    tuesday,
    wednesday,
    thursday,
    friday
} workday; //此处的workday为枚举型enum workday的别名


//定义变量
//变量today和tomorrow的类型为枚举型workday,也即 enum workday
workday today, tomorrow; 

三.枚举enum实战

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言 枚举enum声明变量和使用(二)
//@Time:2021/11/02 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/

#include<stdio.h>

enum Season
{
    spring, summer=100, fall=96, winter
};
typedef enum
{
    Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
Weekday;

void main()
{
    /* Season */
    printf("%d /n", spring); // 0
    printf("%d, %c /n", summer, summer); // 100, d
    printf("%d /n", fall+winter); // 96+97=193
    printf("%d bytes/n", sizeof(spring)); // 4 bytes

    /* Weekday */
    printf("sizeof Weekday is: %d /n", sizeof(Weekday)); //sizeof Weekday is: 4
    Weekday today = Saturday;
    Weekday tomorrow;
    if(today == Monday)
        tomorrow = Tuesday;
    else
        tomorrow = (Weekday) (today + 1); //remember to convert from int to Weekday

四.猜你喜欢

  1. C语言 数组下标越界和内存溢出区别
  2. C语言 使用指针遍历数组
  3. C语言 指针和数组区别
  4. C语言 指针数组和数组指针区别
  5. C语言 野指针
  6. C语言 函数值传递和址传递
  7. C语言 函数不定长参数
  8. C语言 函数指针
  9. C语言 指针函数
  10. C语言 回调函数 callback
  11. C语言 #pragma once
  12. C语言 #include <> 与 #include “” 区别
  13. C语言 const 修饰函数参数
  14. C语言 const 和 define 区别
  15. C语言 #运算符
  16. C语言 ##运算符
  17. C语言 __VA_ARGS__
  18. C语言 ##__VA_ARGS__
  19. C语言 函数不定长参数 ##__VA_ARGS__经典案例
  20. C语言 va_start / va_end / va_arg 自定义 printf 函数
  21. C语言 main 函数
  22. C语言 main 函数参数 main(int argc, char *argv[])
  23. C语言 局部变量
  24. C语言 全局变量
  25. C语言 全局变量和局部变量区别
  26. C语言 static
  27. C语言 extern
  28. C/C++ Unicode 和多字节区别
  29. C/C++ wprintf 输出中文乱码
  30. C/C++ char 和 wchar_t 相互转换
  31. C/C++ sqrt函数
  32. C/C++ NaN(Not a Number)
  33. C语言 枚举enum简介(一)
  34. C语言 枚举enum声明变量和使用(二)

未经允许不得转载:猿说编程 » C语言 枚举enum声明变量和使用(二)
喜欢(1) 打赏

评论抢沙发

评论前必须登录!

不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!!

开始学习

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏