如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。
设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式:
enum weekday{ sun,mon,tue,wed,thu,fri,sat };
enum weekday a,b,c;
或者为:
enum weekday{ sun,mon,tue,wed,thu,fri,sat }a,b,c;
或者为:
enum { sun,mon,tue,wed,thu,fri,sat }a,b,c;
如一定要把数值赋予枚举变量,则必须用强制类型转换。
如:
a=(enum weekday)2;
其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于:
a=tue;
还应该说明的是枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。
例:
#include <stdio.h>
int main()
{
enum weekday{sun,mon,tue,wed,thu,fri,sat}a,b,c;
a=sun;
b=mon;
c=tue;
printf("%d,%d,%d \n",a,b,c);
return 0;
}
运行:
0,1,2
Press any key to continue
Press any key to continue
#include <stdio.h>
int main(){
enum body
{a,b,c,d} month[31],j;
int i1;
j=a;
for(i1=1;i1<=30;i1++)
{
month[i1]=j;
j++;
if(j>d) j=a;
}
for(i1=1;i1<=30;i1++)
{
switch(month[i1])
{
case a:printf("%2d %c\t",i1,'a');break;
case b:printf("%2d %c\t",i1,'b');break;
case c:printf("%2d %c\t",i1,'c');break;
case d:printf("%2d %c\t",i1,'d'); break;
default:break;
}
}
printf("\n");
return 0;
}
运行:
1 a 2 b 3 c 4 d 5 a 6 b 7 c 8 d 9 a 10 b
11 c 12 d 13 a 14 b 15 c 16 d 17 a 18 b 19 c 20 d
21 a 22 b 23 c 24 d 25 a 26 b 27 c 28 d 29 a 30 b
Press any key to continue
11 c 12 d 13 a 14 b 15 c 16 d 17 a 18 b 19 c 20 d
21 a 22 b 23 c 24 d 25 a 26 b 27 c 28 d 29 a 30 b
Press any key to continue
enum string { x1, x2, x3=10, x4, x5, }x; 问x;答案:取值在0。1。10。11。12中的一个
2390

被折叠的 条评论
为什么被折叠?



