枚举是一个基本的数据类型,它可以让数据更简洁。
如果写一个判断星期的文章,我们当然可以使用宏定义来使代码更加易懂,不过:
- #define MON 1
- #define TUE 2
- #define WED 3
- #define THU 4
- #define FRI 5
- #define SAT 6
- #define SUN 7
- 这样的写法有点费键盘。那么枚举就简单多了:
- enum DAY
- {
- MON=1, TUE, WED, THU, FRI, SAT, SUN
- };
❝
**注意:**第一个枚举成员的默认值为整型的 0,后续枚举成员的值在前一个成员上加 1。我们在这个实例中把第一个枚举成员的值定义为 1,第二个就为 2,以此类推。
❞
枚举变量的定义和声明方法和共用体一样,也可以省略枚举名,直接声明变量名。
- //Example 06
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- enum color { red = 1, green, blue };
- enum color favorite_color;
- printf("请输入你喜欢的颜色: (1. red, 2. green, 3. blue): ");
- scanf("%d", &favorite_color);
- //输出结果
- switch (favorite_color)
- {
- case red:
- printf("你喜欢的颜色是红色");
- break;
- case green:
- printf("你喜欢的颜色是绿色");
- break;
- case blue:
- printf("你喜欢的颜色是蓝色");
- break;
- default:
- printf("你没有选择你喜欢的颜色");
- }
- return 0;
- }
执行结果如下:
- //Consequence 06
- 请输入你喜欢的颜色: (1. red, 2. green, 3. blue): 3
- 你喜欢的颜色是蓝色
也可以把整数转换为枚举类型:
- //Example 07
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- enum day
- {
- saturday,
- sunday,
- monday,
- tuesday,
- wednesday,
- thursday,
- friday
- } workday;
- int a = 1;
- enum day weekend;
- weekend = (enum day) a; //使用强制类型转换
- //weekend = a; //错误
- printf("weekend:%d", weekend);
- return 0;
- }
运行结果如下:
- //Consequence 07
- weekend:1
|