当前位置:   article > 正文

C语言自定义类型变量——枚举(enum)

C语言自定义类型变量——枚举(enum)

一.枚举的定义和声明

字面意思,枚举就是一一列举,把可能的取值一一列举,在我们现实生活中有许多可以列举的事物,例如:一周七天,一年四季,性别,月份,三原色等等。当我们需要描述这些数据的时候就可以使用枚举了。其关键字eunm.

类似于结构体,联合体,定义一个枚举类型的基本形式如下:

enum 枚举名

{

        枚举常量1,

        枚举常量2,

        //...

        枚举常量n
};

 例如:枚举一星期七天

  1. enum Day//星期
  2. {
  3. Mon,
  4. Tues,
  5. Wed,
  6. Thur,
  7. Fri,
  8. Sat,
  9. Sun
  10. };

以上定义的 enum Day 就是一种枚举类型。 { }中的内容是枚举类型的可能取值,也叫枚举常量 。这些可能取值都是有值的,默认从0开始,依次递增1,当然在声明枚举类型的时候也是可以赋初值的。(后面的值也是顺次加1的)

  1. enum Color
  2. {
  3. RED,//0
  4. GREEN,//1
  5. BLUE//2
  6. };
  7. int main()
  8. {
  9. //enum Color cl = RED;
  10. //RED=5//err
  11. printf("%d\n", RED);
  12. printf("%d\n", GREEN);
  13. printf("%d\n", BLUE);
  14. return 0;
  15. }

注意:对于enum中的枚举常量在使用的时候是不可以再次赋值的,因为它是一个常量值 ,只能在初始化的时候修改默认值。

二.枚举类型的优点

通过枚举的定义我们会发现它与#define效果很类似,那我们为什么非要使用枚举?

枚举的优点:

#define相对来说更加简单粗暴,就是将所有的符号替换为设定值,并且作用域是全局的,而对于枚举变量中的枚举常量,编译器会将它视作一种变量类型,更加严谨,并且只能在函数内部使用,作用范围更精确。我简单举两个案例直观感受一下enum的好处与用途:

eg1:枚举的类型检查

  1. enum Color//颜⾊
  2. {
  3. RED=1,
  4. GREEN=2,
  5. BLUE=4
  6. };
  7. enum Color clr = GREEN;//使⽤枚举常量给枚举变量赋值
  8. enum Color clr = 2//err(c++中)

eg2: 枚举的可读性

下面是一个简易计算器实现,其中使用enum会将数字替换成名称,增加代码可读性,更加直观。

  1. void menu()
  2. {
  3. printf("**************************************");
  4. printf("******1.Add 2.Sub****************");
  5. printf("******3.Mul 4.Div****************");
  6. printf("***********0.Exit*********************");
  7. printf("**************************************");
  8. }
  9. eunm
  10. {
  11. Exit,//0
  12. Add,//1
  13. Sub,//2
  14. Mul,//3
  15. Div//4
  16. }
  17. int main()
  18. {
  19. int input = 0;
  20. printf("请输入->");
  21. scanf("%d", &input);
  22. switch (input)
  23. {
  24. case Add://1
  25. //Add();
  26. break;
  27. case Sub://2
  28. //Sub();
  29. break;
  30. case Mul://3
  31. //Mul();
  32. break;
  33. case Div://4
  34. //Dix();
  35. break;
  36. case Exit://0
  37. //Exit()
  38. break;
  39. default:
  40. break;
  41. }
  42. return 0;
  43. }

eg3:枚举一次性定义多个变量,相较于#define更加简洁明了。

  1. enum Color
  2. {
  3. RED=,//0
  4. GREEN,//1
  5. BLUE//2
  6. };
  7. #define RED 0
  8. #define GREEN 0
  9. #define BLUE 0

以上便是对C语言自定义类型变量的最后一种——枚举的简要介绍,望屏幕前的你能有所收获! 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号