枚举类型是一种用户自定义类型
是由若干个有名字常量组成的有限集合
使程序的可读性增强
定义格式:
enum<枚举类型名>
{
<枚举元素>[=<整型变量>],
...
};
默认第一个枚举元素为0,到n-1。
enum season
{
spring = 1,
summer,
autumn,
winter
};
spring指定为1,summer = 2,autumn = 3,winter = 4。
enum weekday
{
Mon = 1,
Tues,
Wed,
Thus,
Fri,
Sat,
Sun = 0
};
Mon = 1, Tues = 2, Wed = 3, Thus = 4, Fri = 5, Sat = 6, Sun =0.
枚举变量的使用:
①season TempS1;
TempS1 = spring;
②enum color{
Red,
Yellow,
Green,
Blue,
Black
}c1,c2;
c1 = Green;
枚举变量与整型的关系:
整型值只能显式地转换为一个枚举值,如果转换的结果位于该枚举取值范围之外,则结果是无定义的。
enum e1{
dark = 1,
light = 10
};
e1 VAR1 = e1(50); //无定义
e1 VAR2 = e1(3); //编译通过
不允许隐式的从整型转换到枚举是因为大部分整型值在特定的枚举里没有对应的表示。
一个枚举类型的sizeof就是某个能够容纳其范围的整型的sizeof,而且不会大于sizeof(int),除非某个枚举子的值不能用int或者unsigned int 来表示。
总结:
①枚举类型适用于switch-case 语句。
②枚举类型不支持cin>>和cout<<(输出其标号)。
③枚举类型之间的比较可以用<、>、<=、>=、==、!=。
④枚举类型可以做函数的返回类型。
⑤枚举是用户自定义类型,可以为它定义自身的操作,如++或者<<。