1,枚举是C语言中的一种构造数据类型,它可以让数据更简洁,更易读,对于只有几个有限的特定数据,可以使用枚举
2,枚举对应英文 enumeration 简写 enum
3,枚举是一组常量的集合,包含一组有限的特定的数据
4,枚举语法定义格式为
enum 枚举名 {
枚举元素1,枚举元素2,枚举元素3,.......
} ;
打印结果:
day = 3
5,枚举的遍历
C语言中,枚举类型是被当做 int 或者 unsigned int 类型来处理的,枚举类型必须连续时可以实现有条件的遍历
1 #include<stdio.h> 2 enum DAY { 3 MON = 1, TUE, WED, THU, FRI, SAT, SUN //如果没有给赋值,就会按照顺序赋值 4 } day; //表示定义了一个枚举类型 enum DAY,同时定义了一个变量 day(类型是enum DAY) 5 6 void main() { 7 8 for (day = MON;day <= SUN;day++) { //要求枚举元素连续赋值 9 printf("枚举元素:%d\n", day); 10 } 11 }
6,switch 中使用枚举
1 #include<stdio.h> 2 3 void main() { 4 enum SEASONS { 5 SPRING = 1, SUMMER, AUTUMN, WINTER 6 }; 7 enum SEASONS season; 8 printf("请输入你最喜欢的季节(1:spring,2:summer,3,autumn,4,winter):"); 9 scanf("%d", &season); 10 switch (season) { 11 case SPRING: 12 printf("你最喜欢的季节是春天"); 13 break; 14 case SUMMER: 15 printf("你最喜欢的季节是夏天"); 16 break; 17 case AUTUMN: 18 printf("你最喜欢的季节是秋天"); 19 break; 20 case WINTER: 21 printf("你最喜欢的季节是冬天"); 22 break; 23 default: 24 printf("你没有选择你最喜欢的季节"); 25 } 26 }
7,第一个枚举成员的默认值是整型的0,后续枚举成员的值在前一个成员上加1,
8,在定义枚举类型是可以改变枚举元素的值:
enum DAY {
MON, TUE, WED, THU=9,FRI, SAT , SUN
} day ;
THU,SAT,SUN 的值就是10.11,12
9,枚举变量定义的形式1,先定义枚举的类型,再定义枚举变量
enum DAY {
MON, TUE, WED , THU , FRI , SAT , SUN
} ;
enum DAY day;
10,枚举变量定义的形式2,定义枚举类型的同事定义枚举变量
enum DAY {
MON, TUE, WED , THU , FRI , SAT , SUN
} day ;
11,枚举变量定义的形式3,省略枚举名称,直接定义枚举变量
enum {
MON, TUE, WED , THU , FRI , SAT , SUN
} day ;
这样使用枚举,该枚举类型只能使用一次
12,可以将整数转换为对应的枚举值
不能直接将一个整数,赋给枚举变量,但是可以将整数,转成枚举类型,再赋给枚举变量
enum SEASONS { SPRING=1 , SUMMER , AUTUMN , WINTER } ;
enum SEASONS season ;
int n=4;
season = (enum SEASONS) n ;
原文:https://www.cnblogs.com/shanlu0000/p/12348042.html