如果一个变量只有几种可能的值,则可以定义为枚举类型,所谓“枚举”就是指将可能的值一一列举出来,变量的值只限于列举出来的值的范围内。
声明枚举类型的一般形式:
enum [枚举名]
{
枚举元素(或称为枚举常量)列表
};
注意:枚举成员之间要用逗号“ , ”进行分隔,而不是用“ ; ”。
枚举的使用与结构体的使用相似:
enum [枚举名] [变量名];
代码:?
#include <stdio.h>
enum weekday
{
sun,
mon,
tue,
wed,
thus,
fri,
sat,
};
int main()
{
enum weekday workday;
workday = tue;
printf("%d\n",workday);
return 0;
}
运行结果:2
注意:
①每个枚举元素都代表一个整数,C语言按定义时的顺序默认它们的值为0,1,2,3,4……,也就是按后面的加1。以上面的代码为例,sum的值自动设为0,mon的值为1……,sat的值为6。所以
workday = tue;
相当于
workday = 2;
②当然,每个枚举元素的值也可以人为指定,例如
enum weekday
{
sun=7,
mon=1,
tue,
wed,
thus,
fri,
sat,
};
指定枚举元素sun的值为7,mon为1,以后的枚举元素按顺序加1,直至sat=6。
③不同的枚举类型,枚举元素名称不可以相同。
④相同的枚举类型,枚举元素的值可以相同。