C语言——enum枚举实例、知识点。使用枚举,减少相同定义步骤,简洁数据1.1.5

简介: 枚举是C语言常见的一种基本数据类型,它可以避免多个整数定义的麻烦,使代码整洁干净易读如此一看,就觉得繁琐无比,大量重复#define xx明显增加代码量,且数值需自己一一对应而枚举,可以解决这种定义连续数值的过程当变量第一个值未自定义时,第一个枚举成员的默认值则为整型0,后续成员值依次加1,如此时MON=0,TUE=1,WED=2·····.........


目录

枚举

基本格式

定义枚举变量

实际应用测试

枚举遍历

枚举与数组的比较


枚举

枚举是C语言常见的一种基本数据类型,它可以避免多个整数定义的麻烦,使代码整洁干净易读

假设定义出,一个星期7天,传统的方法就是这样,为每个整数定义一个别名:

#define MON  1#define TUE  2#define WED  3#define THU  4#define FRI  5#define SAT  6#define SUN  7

image.gif

如此一看,就觉得繁琐无比,大量重复#define xx明显增加代码量,且数值需自己一一对应

而枚举,可以解决这种定义连续数值的过程

基本格式

enumDAY//名称{
MON, TUE, WED, THU, FRI, SAT, SUN//变量};

image.gif

当变量第一个值未自定义时,第一个枚举成员的默认值则为整型0,后续成员值依次加1,如此时MON=0,TUE=1,WED=2·····

定义枚举变量

①先定义枚举类型,再定义枚举变量

enumDAY{
MON=1, TUE, WED, THU, FRI, SAT, SUN};
enumDAYday;

image.gif

②定义枚举类型的同时定义枚举变量

enumDAY{
MON=1, TUE, WED, THU, FRI, SAT, SUN} day;        //省略了DAY

image.gif

③省略枚举名称,直接定义枚举变量

enum//省略名称{
MON=1, TUE, WED, THU, FRI, SAT, SUN} day;        //直接定义枚举变量

image.gif

实际应用测试

我们尝试将枚举里的值printf()一下,看看是不是我们所想要的,这里尝试:直接使用枚举变量;通过定义枚举变量a;通过int b定义赋值,使用三种方式来输出

image.gif编辑

据此我们发现,每一个星期值,都按顺序被定义好了,简单省事

枚举遍历

C 语言中,枚举类型是被当做 int 或者 unsigned int 类型来处理,所以按照 C 语言规范是没有办法遍历枚举类型的。

不过在一些特殊的情况下,枚举类型必须连续是可以实现有条件的遍历。

接下来我们尝试使用 for 来遍历枚举中的所有元素

#include <stdio.h>enumDAY{
MON=1, TUE, WED, THU, FRI, SAT, SUN}DAYday;
intmain()
{
for (day=MON; day<=SUN; day++) 
{
printf("%d\n", day);
}
return0;
}

image.gif

其中的输出结果为:

1

2

3

4

5

6

7

当不连续时,例如我们将变量TUE=10,此时的MON=0,很明显是不可以实现遍历的。

更多枚举的好玩实例,等我摸索摸索再分享给大家,有想法的C友,可以在评论区分享😂

枚举与数组的比较

#include <stdio.h>intmain ()
{
intn[ 10 ]; 
inti,j;
for ( i=0; i<10; i++ )
   {
n[ i ] =i;    
   }
for (j=0; j<10; j++ )
   {
printf("n[%d] = %d\n", j, n[j] );
   }
return0;
}

image.gif

枚举是值类型,数组是引用类型  

枚举存常量,数组存变量,枚举中,似乎一切都是固定的,而数组,在固定的内存中,却可以更改其元素。

相关文章
|
30天前
|
存储 编译器 C语言
C语言函数的定义与函数的声明的区别
C语言中,函数的定义包含函数的实现,即具体执行的代码块;而函数的声明仅描述函数的名称、返回类型和参数列表,用于告知编译器函数的存在,但不包含实现细节。声明通常放在头文件中,定义则在源文件中。
|
1月前
|
存储 编译器 C语言
c语言回顾-联合和枚举
c语言回顾-联合和枚举
28 4
|
1月前
|
存储 C语言 C++
深入C语言,发现多样的数据之枚举和联合体
深入C语言,发现多样的数据之枚举和联合体
深入C语言,发现多样的数据之枚举和联合体
|
1月前
|
C语言
C语言学习笔记-知识点总结上
C语言学习笔记-知识点总结上
74 1
|
1月前
|
IDE Unix 开发工具
1.6使用C语言的7个步骤后续
在编程过程中,首先通过不同环境下的方法运行程序,如输入可执行文件名或点击图标。接着测试程序运行情况,查找并修正可能出现的错误,即调试。创建程序后还需根据需求进行维护与修改,如修正错误或添加新功能。整个流程非线性,需反复迭代。
67 8
|
1月前
|
编译器 C语言
1.6 使用C语言的7个步骤
在开发C程序时,首先要明确程序目标,即程序需要处理的信息、计算和输出;接着设计程序实现的方法,包括用户界面、程序结构等;随后用C语言编写程序代码;最后通过编译器将源代码转换为特定机器语言的可执行文件,同时链接C库中的标准函数,形成最终可运行的程序。此过程需根据具体编程环境调整相关设置和操作。
52 7
|
1月前
|
存储 C语言
深入C语言内存:数据在内存中的存储
深入C语言内存:数据在内存中的存储
|
1月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
|
2月前
|
安全 编译器 C语言
C语言常量的定义与使用的注意点
在 C 语言中,常量是在程序运行期间值不变的量,通过字面值、`#define` 或 `const` 关键字定义。字面常量直接在代码中表示固定值,如整数 `100`、浮点数 `3.14`、字符 `&#39;A&#39;` 和字符串 `&quot;Hello, World!&quot;`;`#define` 用于定义宏,如 `#define PI 3.14159`;`const` 则定义不可变变量,如 `const int daysInWeek = 7`。常量可用于数组大小、循环边界等场景,并能提升代码的可读性和可维护性。使用时需注意作用域、类型安全和命名,避免直接使用数字(魔法数字)。
|
1月前
|
存储 安全 编译器
深入理解C语言中的枚举
深入理解C语言中的枚举