枚举类型变量的定义
不同枚举中的名字必须互不相同,
就如:
#include <stdioh>
int main()
{
enum uu{id,name};
enum mm{id,sex};
return 0;
}
id重复定义了;
同一枚举中不同的名字可以有相同的值:
就如:
#include <stdioh>
int main()
{
enum uu{id=1,name=1};
return 0;
}
id和name的值相同
1、通过预定义列出所有值的标识符来定义一个有序集合,这些值的次序和枚举类型说明中的标识符的次序是一致的。
2、例如:typedaystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturday)
3、枚举元素只能是标识符,而不能是数值常量或字符常量。例如以下的定义是错误的:typedaystype=(sun,mon,tue,wed,thu,fri,sat)
枚举类型变量定义和结构体、共用体变量定义类似,也有三种定义方法。
(1)先定义枚举类型,再定义枚举类型变量:
enum标识符{枚举数据表);
enum标识符 变量表;
(2)在定义枚举类型的同时定义枚举类型变量:
enum标识符{枚举数据表) 变量表;
(3)直接定义枚举类型变量:
enum(枚举数据表)变量表;
例如,对枚举类型enum color,定义枚举变量c1、c2:
enum color{red,yellow,blue,white,black};
enum color c1,c2;或enum color{red,yellow,blue,white,black}c1,c2;或enum{red,yellow,blue,white,black}c1,c2;
枚举类型数据可以进行赋值运算。枚举类型是有序类型,枚举类型数据还可以进行关系运算。枚举类型数据的比较转化成对序号进行比较,只有同一种枚举类型的数据才能进行比较。
将枚举型数据按整型格式输出,可得到整数值(枚举变量值的序号)。
使用强制类型转换,可将整数值(枚举值序号)转换成对应枚举值。例如:
c1=(enum color。)2;/c1得到枚举值blue/
枚举类型数据不能直接输入输出。枚举类型数据输入时,先输入其序号,再进行强制类型转换完成。输出时,采用开关语句先进行判断,再转化成对应字符串输出。
0条评论