--1.
枚举的定义:
enum 枚举名{ 枚举值表 }; 在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。
例如:该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。
--2. 枚举变量的使用:
如同结构和联合一样,枚举变量也可用不同的方式声明,即 先定义后声明,同时定义声明、直接声明。
例如:
sun=5;
mon=2;
sun=mon;
都是错误的。
--2. 枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。
--枚举通常和 typedef一起使用,typedef enum { Sun,Mon,Tue,Wed,Thu,Fri,Sat }Weekday; Weekday是该枚举类型别名,不再是枚举变量了。使用时为 Weekday a,对比之前 。
enum 枚举名{ 枚举值表 }; 在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。
例如:该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。
--2. 枚举变量的使用:
如同结构和联合一样,枚举变量也可用不同的方式声明,即 先定义后声明,同时定义声明、直接声明。
例:enum weekday{ sun,mon,tue,wed,thur,fri,sat }; enum weekday a,b,c; (注意此处必须是enum weekday a 而不是weekday a)
enum weekday{ sun,mon,tue,wed,thur,fri,sat }a,b,c;enum { sun,mon,tue,wed,thu,fri,sat }a,b,c;
------------备注------------
--1. 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。例如:
sun=5;
mon=2;
sun=mon;
都是错误的。
--2. 枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。
--3.只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。
例如:
a=sum;是正确的。a=0;是错误的。
如一定要把数值赋予枚举变量,则必须用强制类型转换。a=(enum weekday)2;其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于:a=tue;
--4.还应该说明的是枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。--枚举通常和 typedef一起使用,typedef enum { Sun,Mon,Tue,Wed,Thu,Fri,Sat }Weekday; Weekday是该枚举类型别名,不再是枚举变量了。使用时为 Weekday a,对比之前 。