30 枚举

1,枚举是C语言中的一种构造数据类型,它可以让数据更简洁,更易读,对于只有几个有限的特定数据,可以使用枚举

2,枚举对应英文 enumeration  简写 enum

3,枚举是一组常量的集合,包含一组有限的特定的数据

4,枚举语法定义格式为  

  enum  枚举名  {

    枚举元素1,枚举元素2,枚举元素3,.......

  } ;

  

 

 

   打印结果:

  day = 3

5,枚举的遍历

  C语言中,枚举类型是被当做 int 或者 unsigned int 类型来处理的,枚举类型必须连续时可以实现有条件的遍历

 1 #include<stdio.h>
 2 enum DAY {
 3     MON = 1, TUE, WED, THU, FRI, SAT, SUN  //如果没有给赋值,就会按照顺序赋值
 4 } day;  //表示定义了一个枚举类型 enum DAY,同时定义了一个变量 day(类型是enum DAY)
 5 
 6 void main() {
 7 
 8     for (day = MON;day <= SUN;day++) {  //要求枚举元素连续赋值
 9         printf("枚举元素:%d\n", day);
10     }
11 }

 

 

 6,switch 中使用枚举

 1 #include<stdio.h>
 2 
 3 void main() {
 4     enum SEASONS {
 5         SPRING = 1, SUMMER, AUTUMN, WINTER
 6     };
 7     enum SEASONS season;
 8     printf("请输入你最喜欢的季节(1:spring,2:summer,3,autumn,4,winter):");
 9     scanf("%d", &season);
10     switch (season) {
11     case SPRING:
12         printf("你最喜欢的季节是春天");
13         break;
14     case SUMMER:
15         printf("你最喜欢的季节是夏天");
16         break;
17     case AUTUMN:
18         printf("你最喜欢的季节是秋天");
19         break;
20     case WINTER:
21         printf("你最喜欢的季节是冬天");
22         break;
23     default:
24         printf("你没有选择你最喜欢的季节");
25     }
26 }

 

 

 7,第一个枚举成员的默认值是整型的0,后续枚举成员的值在前一个成员上加1,

8,在定义枚举类型是可以改变枚举元素的值:

  enum DAY {

    MON, TUE, WED, THU=9,FRI, SAT , SUN

  } day ; 

  THU,SAT,SUN 的值就是10.11,12

9,枚举变量定义的形式1,先定义枚举的类型,再定义枚举变量

  enum DAY {

    MON, TUE, WED , THU , FRI , SAT ,  SUN

  } ;

     enum DAY day;

10,枚举变量定义的形式2,定义枚举类型的同事定义枚举变量

     enum DAY {

    MON, TUE, WED , THU , FRI , SAT ,  SUN

   }  day ;

11,枚举变量定义的形式3,省略枚举名称,直接定义枚举变量

  enum  {

    MON, TUE, WED , THU , FRI , SAT ,  SUN

  } day  ;

  这样使用枚举,该枚举类型只能使用一次

12,可以将整数转换为对应的枚举值

  不能直接将一个整数,赋给枚举变量,但是可以将整数,转成枚举类型,再赋给枚举变量

  enum SEASONS {  SPRING=1 , SUMMER , AUTUMN , WINTER } ;

  enum SEASONS  season ;

  int n=4;

  season = (enum SEASONS) n ;

  

 

posted @ 2020-02-22 23:33  shanlu  阅读(113)  评论(0编辑  收藏  举报