定义
枚举类型定义的一般形式为:
enum 枚举名{ 枚举值表 };
在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。枚举元素的取值范围和int 型相同。
例如:
enum weekday{
sun,
mou,
tue,
wed,
thu,
fri,
sat
};
如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。
设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式:
enum weekday{
sun,
mou,
tue,
wed,
thu,
fri,
sat
};
enum weekday a,b,c;
或者为:
enum weekday{
sun,
mou,
tue,
wed,
thu,
fri,
sat
}a,b,c;
或者为:
enum weekday{
sun,
mou,
tue,
wed,
thu,
fri,
sat
}a,b,c;
.
赋值和使用
1 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。
2 枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。可以在定义中赋值以规定其数值,则后边元素的值依次加1。
例如 :
enum weekday{
mou = 1,
tue,
wed,
thu,
fri,
sat,
sun = 0,
};
表示 mou = 1 tue = 2 wed =3 thu = 4 fri = 5 sat = 6 sun = 0
3 只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如一定要把数值赋予枚举变量,则必须用强制类型转换。
例如:
enum weekday{
sun,
mou,
tue,
wed,
thu,
fri,
sat
}a,b,c;
a = sum;
b= mon;
是正确的。而:
a = 0;
b = 1;
是错误的。如一定要把数值赋予枚举变量,则必须用强制类型转换。
如:
a = (enum weekday)2;
其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于:
a = tue;