携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第22天,点击查看活动详情
👋『大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流>』
✔「life motto」⇢ 种一棵树最好是十年前⇿其次是现在👌
📝<juejin>个人主页⇥謓泽 的个人主页 - 文章 - 掘金 (juejin.cn)
📚<系列专栏>⇥C语言关键字🍻 - 謓泽的专栏 - 掘金 (juejin.cn)
🏆2021年度博客之星物联网与嵌入式开发TOP5 2021博客之星Top100 阿里云专家博主^星级博主 CSDN⇿掘金⇿InfoQ[创作者]
⑩① enum ⇿ 枚举类型
⒈描述⇢声明外部变量和函数是一种基本 数据类型,它可以让数据更简洁,更易读。
定义-enum 枚举名 {枚举元素1,枚举元素2,……};
⒉注意⇢第一个枚举成员的默认值为整型的 0,后续枚举成员的值在前一个成员上加 1。我们在这个实例中把第一个枚举成员的值定义为 1,第二个就为 2,以此类推。
⒊作用⇢枚举类型枚举的是一堆的常量,它和结构体和联合体都是不一样的。结构体和联合体所定义的都是一些变量的值,而枚举的内部存储的都是常量。常量与常量之间使用逗号(,)来进行隔开的,内部的这些常量都是可以当中数据来进行使用的。
代码示例演示→如下所示👇
#include<stdio.h> enum color { //枚举常量 black, white, gules, }; int main(void) { printf("%d\n", black); printf("%d\n", white); printf("%d\n", gules); return 0; }运行结果🖊
0
1
2
当然枚举也是可以列举在我们生活当中的,例如:三原色、一个星期是多少天,一年有多少月份。这些都是可以采用枚举类型进行一一列举的。
🍅注→实际上枚举常量是可以进行赋初值的。如下代码所示👇
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> enum color { //枚举常量,进行赋初值。 black = 2, white = 4, gules = 6, }; int main(void) { printf("%d\n", black); printf("%d\n", white); printf("%d\n", gules); return 0; }运行结果🖊
2
4
6
🍎枚举变量的定义
(一) 先定义枚举类型,再定义枚举变量
enum Color { red = 1,orange,yellow,green,cyan,blue,purple }; enum Color seven;(二) 定义枚举类型的同时定义枚举变量
enum Color { red = 1,orange,yellow,green,cyan,blue,purple } seven;(三) 省略枚举名称,直接定义枚举变量
enum { red = 1,orange,yellow,green,cyan,blue,purple } seven;✔枚举的优点
我们可以使用#define宏定义常量,为什么还需要用到枚举,来说说枚举的优点↓
- 增加代码的可读性和可维护性。
- 和#define相比定义的标识符比较枚举有类型的检查,更加具有严谨性。
- 便于程序当中调试。
- 使用比较方便,依次就可以定义多个枚举常量。
- 封装性好。
在switch case 在有些场景下是可以配合 enum 枚举类型进行使用的。 示例代码如下↓
#include<stdio.h> enum Number { Exit, }; int main(void) { int num = 0; printf("Please input num value:"); scanf("%d", &num); switch (num) { case Exit:printf("退出exit!");break; } return 0; }运行结果🖊
Please input num value:0
退出exit!
🍊enum说明⇢****⒈本质上是定义制作一组强相关性的常量比如:颜色枚举常量那么它都是同一类型的常量。⒉为什么不可以定义还需要用枚举呢? 结论你最终用所谓的整形或者是用所谓的枚举,当然这个实际上在C的编译器都是可以支持的。之所以用枚举常量定义有两个原因:①专业的技术做专业的事情,这里当然指的是枚举(enum)
#include<stdio.h> enum color { black, white, red }a; int main(void) { a = red;//a充当的是枚举变量颜色(拥有自说明性:写代码的人一下看的懂) printf("%d %d",a,red); return 0; } //运行结果:2 2②如上代码说明:枚举的代码具有自描述性,不用对代码进行过多的解释。
★拓展→常量不多且没有上面相关性可以使用宏定义,反之用枚举。