enum是枚举类型,实际上就是定义一组值,enum定义数据类型的值只能是这一组值中的一个。
在实际生活中,很多问题都与是这样的。如人的性别,只有男女两种;一星期有七天;月份只有十二个值。
如下定义一周七天的值:
#include <stdio.h> typedef enum { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }week; int main() { printf("%d %d %d %d %d %d %d ",Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday); return 0; }
运行结果为:0 1 2 3 4 5 6
enum枚举类型的成员都是整型常量,在定义时若不给成员赋值,则第一个成员的值为0,后面成员的值依次加1。若有一个值已初始化,则后面的成员在这个成员的值的基础上加一递增。
在外部给枚举变量赋值时,需要强制类型转换。如:week day = (week)1;
但实际中写作week day = 1; 编译器codeblocks也没有报错。
但需要注意,枚举变量的值都是整型的。