C语言中还有一种特殊的类型:枚举类型,它可以让代码更简介、更易读,通过关键字enum实现,一般形式如下:
enum 枚举名 {枚举元素1,枚举元素2,……};
这样就会定义了一个“枚举名”的枚举类型,其值为枚举元素1(即0)、枚举元素2(即1)...(依次递增)。
可以看到,枚举类型每个元素的值是从0开始递增的,大家可以通过代码验证,例子代码如下:
#include<stdio.h> int main() { enum Week{MON, TUE, WED, THU, FRI, SAT, SUN};//定义一个enum week类型,七个值(0.1.2...6) enum Week A=WED; //第三个值赋给A printf("%d\n",A); return 0; }
大家可以尝试以整数类型输出A的值,并更换A的值对比验证。
我们可以发现枚举类型的特点默认是从0开始递增,若想更改,可以将其中某个类型赋值,后面的值将在此基础之上递增,如代码:
#include<stdio.h> int main() { enum Week{MON, TUE=5, WED, THU, FRI, SAT, SUN}; enum Week A=WED; printf("%d\n",A); return 0; }
请大家继续上机运行输出并分析验证结果。
相信经过大家亲自上机就会发现并体会到枚举类型的他特点,试想:如果此时用宏定义(后面讲到)实现将更麻烦,因此枚举的优势就在于此。
请大家理解之后完成课后题。
1783 | 星期判断机 |
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程