枚举类型在使用中有以下规定
1枚举值是常量,不是变量。不能在程序中用赋值与家具再对它赋值。错误sun=5;mon=2;sun=mon;
2枚举元素本身由系统定义了一个表示序号的数值,默认从0开始顺序定义为0,1,2,3……如在WeekdayType中,sun值为0,mon值为1,……sat值为6
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
enum weekdayType
{
sun,mon,tue,wed,thu,fri,sat
};
enum weekdayType weekday;
weekday=sun;
printf("%6d\n",weekday);
weekday=mon;
printf("%6d\n",weekday);
weekday=tue;
printf("%6d\n",weekday);
weekday=thu;
printf("%6d\n",weekday);
weekday=wed;
printf("%6d\n",weekday);
system("PAUSE");
return 0;
}
要使枚举值从1到7,可使用如下方式定义
enum weekdayType
{
sun=1,mon,tue,wed,thu,fri,sat
};
3只能将枚举值赋予给枚举变量,不能把元素的数值直接赋予枚举变量
weekday=sun;是正确的,而weekday=0是错误的
如果一定要把数值赋予给枚举类型,则必须用强制类型转换eg
weekday=(weekdayType)6;
其意义是将顺序号为6的枚举元素赋予枚举类型变量weekday,相当于weekday=sat;还应该说明的是枚举元素是标识符,而不是字符常量也不是字符串常量,使用时不要加单,双引号