1.介绍
- 枚举是C语言中的一种构造数据类型,它可以让数据更简洁,更易读。对于只有几个有限的特定数据,可以使用枚举
- 枚举是一组常量的集合,包含一组有限的特定的数据
- 枚举语法定义格式为
enum 枚举名 {枚举元素1, 枚举元素2, ……)
2.代码示例
#include<stdio.h> void main() { enum DAY { MON = 1, TUE = 2, WED = 3, THU = 4, FRI = 5, SAT = 6, SUN = 7 }; enum DAY day; day = WED; printf("%d", day); }
3.枚举的遍历
#include<stdio.h> int main() { enum DAY {//表示定义了一个枚举类型 DAY,可以参考 int DAY,其中 int 为整形 MON = 1, TUE, WED, THU, FRI, SAT, SUN//如果没有赋值将会按照顺序依次赋值 } day;//定义了一个变量day ,变量day的类型为枚举类型(enum DAY) //遍历枚举元素 //day++会导致warnning,但是可以运行 for (day = MON; day <= SUN; day++) { printf("枚举元素:%d\n", day); } }
4.swith中使用枚举
#include<stdio.h> void main() { enum CITY { HANGZHOU = 1, SUZHOU, NANJING, WUXI, XIAMEN } city; printf("请输入你最喜欢的城市:"); scanf_s("%d", &city); switch (city) { case HANGZHOU: printf("你最喜欢的城市是杭州"); break; case SUZHOU: printf("你最喜欢的城市是苏州"); break; case NANJING: printf("你最喜欢的城市是南京"); break; case WUXI: printf("你最喜欢的城市是无锡"); break; case XIAMEN: printf("你最喜欢的城市是厦门"); break; default : printf("看来你不喜欢杭州、苏州、南京、无锡和厦门这些城市!"); } }
5.枚举的注意事项
- 第一个枚举成员的默认值为整型的 0,后续枚举成员的值在前一个成员上加 1
#include<stdio.h> int main() { enum DAY { MON, TUE, WED, THU, FRI, SAT, SUN//不赋值默认赋值为0 } day; for (day = MON; day <= SUN; day++) { printf("枚举元素:%d\n", day); } }
2.在定义枚举类型时改变枚举元素的值
#include<stdio.h> int main() { enum DAY { MON = 1, TUE, WED, THU = 7 , FRI, SAT, SUN//在定义枚举类型时改变枚举元素的值 } day; //THU = 7 ,FRI = 8以此类推 for (day = MON; day <= SUN; day++) { printf("枚举元素:%d\n", day); } }
3.枚举变量的定义的形式 1-先定义枚举类型,再定义枚举变量
enum CITY { HANGZHOU = 1, SUZHOU, NANJING, WUXI, XIAMEN }; enum CITY city;
4.枚举变量的定义的形式 2-定义枚举类型的同时定义枚举变量
enum CITY { HANGZHOU = 1, SUZHOU, NANJING, WUXI, XIAMEN} city;
5.枚举变量的定义的形式 3-省略枚举名称,直接定义枚举变量
enum { HANGZHOU = 1, SUZHOU, NANJING, WUXI, XIAMEN} city;
这样定义,该枚举类型只能使用一次
6.可以将整数转换为对应的枚举值。不能直接将一个整数,赋给枚举变量,但是可以将整数,转成枚举类型,再赋给枚举变量