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 星期判断机
点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)