C语言自定义类型 — 枚举

Dear 丶 2023-10-05 23:04 162阅读 0赞

联合体:http://t.csdn.cn/xPGVu

结构体: http://t.csdn.cn/vVtua

16e52812519146eaa78cd95537c85a8c.jpeg

这次带着大家学习了枚举类型的定义、优点以及使用。

下一篇将带着大家学习联合体方面的知识。

目录

枚举

1.枚举类型的定义

2.枚举类型的优点

3.枚举类型的使用


枚举

枚举其实就是一一列举的意思,把可能的取值一一列举。

例如:

  1. 一周的星期一到星期天一共有7天,可以一一列举。
  2. 性别有男、女人、保密也可以一一列举。
  3. 月份有12个月,也可以一一列举。

取值是有限的。

#

1.枚举类型的定义

例1:

  1. enum Day//星期
  2. {
  3. Mon,
  4. Tous,
  5. Wed,
  6. Thur,
  7. Fri,
  8. Sat,
  9. Sun
  10. };
  11. struct stu
  12. {
  13. int a;
  14. char b;
  15. };
  1. enum 是枚举关键字,Day 是枚举的标签;struct 是结构体关键字,stu 是结构体的标签。
  2. 两者都有1个{}和分号,结构体的叫成员变量,枚举的叫枚举常量。
  3. 在语法形式上,枚举都是一逗号结尾的,而结构体则是分号。

例2:

  1. enum Day//星期
  2. {
  3. Mon,
  4. Tous,
  5. Wed,
  6. Thur,
  7. Fri,
  8. Sat,
  9. Sun
  10. };
  11. int main()
  12. {
  13. enum Day d = Fri;
  14. return 0;
  15. }
  1. 此时的d表示的是星期五的意思,而且d的值只能是枚举类型其中的一个。
  2. {} 里面的内容是枚举类型的可能取值。

枚举类型的可能取值都是有值的,默认从0开始,一次递增1,当然在定义的时候也可以赋初值。

例3:

  1. enum Day//星期
  2. {
  3. Mon,//0
  4. Tous,//1
  5. Wed,//2
  6. Thur,//3
  7. Fri,//4
  8. Sat,//5
  9. Sun//6
  10. };
  11. int main()
  12. {
  13. printf("%d\n", Mon);
  14. printf("%d\n", Tous);
  15. printf("%d\n", Wed);
  16. return 0;
  17. }

代码结果:

ca8bbff4050a4ba8b5b094167d016dc7.png

例4:

修改枚举的默认值

  1. enum Day//星期
  2. {
  3. Mon = 1,
  4. Tous,
  5. Wed,
  6. Thur,
  7. Fri,
  8. Sat,
  9. Sun
  10. };
  11. int main()
  12. {
  13. //enum Day d = Fri;
  14. printf("%d\n", Mon);
  15. printf("%d\n", Tous);
  16. printf("%d\n", Wed);
  17. printf("%d\n", Thur);
  18. printf("%d\n", Fri);
  19. printf("%d\n", Sat);
  20. printf("%d\n", Sun);
  21. return 0;
  22. }

代码结果:

c75b20d6e1824a46aefa7f6e0f790a88.png

2.枚举类型的优点

为什么要使用枚举呢

枚举的优点:

  1. 增加代码的可读性和可维护性
  2. 和#define定义的标识符比较枚举有类型检查,更加严谨
  3. 防止命名污染(封装)
  4. 便于调试
  5. 使用方便,一次可以定义多个常量

3.枚举类型的使用

  1. enum Color//颜色
  2. {
  3. RED = 1,
  4. GREEN = 2,
  5. BLUE = 4
  6. };
  7. int main()
  8. {
  9. enum Color color = GREEN;//只能拿枚举常量给枚举变量赋值,才不会出现类型的差异。
  10. color = 5; //error
  11. return 0;
  12. }

发表评论

表情:
评论列表 (有 0 条评论,162人围观)

还没有评论,来说两句吧...

相关阅读