当前位置: 代码迷 >> 综合 >> 枚举类型 enum
  详细解决方案

枚举类型 enum

热度:40   发布时间:2023-12-13 12:10:26.0

如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。
  设有变量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

#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

enum string   {    x1,    x2,   x3=10,    x4,    x5,   }x;    x;答案:取值在01101112中的一个




  相关解决方案