best365官网登录

【C语言】枚举类型(enum)

📅 2025-09-19 11:31:54 👤 admin 👁️ 6484 🏷️ 596

前言在本文,我们将学习一个自定义的类型——枚举。相信很多读者听到这个并不会感觉到陌生,那么本文就来着重跟大家聊一聊何为枚举类型,能用枚举类型干什么事。

话不多说,让我们开始本次精彩的学习吧!💖💖💖

1. 枚举的含义在开始正式学习枚举类型之前,我们得先了解一下何为“枚举”?

所谓枚举顾名思义就是一一列举。把所有可能的值都一一列举出来。

比如:在一个星期内,有星期一、星期二、星期三、星期四、星期五、星期六、星期日,共七天,这个星期是能一一列举出来的

再如:血型,有A型、AB型、B型、O型、熊猫血,这个血型也是能够列举出来的。

说得抽象一点的话,就是在一个有限的集合中,将这个集合里面的值都一一列举出来,而这个集合就属于枚举类型。

2. 枚举类型的声明在讲完枚举的含义之后,我们就来认识一下,在C语言中是如何声明一个枚举类型的。

举例:

代码语言:javascript代码运行次数:0运行复制enum Day/星期

{

Mon,

Tues,

Wed,

Thur,

Fri,

Sat,

Sun

};

enum Sex

{

Male,

Female,

Secret

};

enum Color

{

RED,

GREEN,

BLUE

};注意:这里跟结构体的声明还是有点差别的,请读者在声明枚举类型时注意细节。

以上定义的enum Day,enum Sex,enum Color都是枚举类型。

{}里面的值就是枚举类型可能取值,也叫做枚举常量。

这些可能的取值都是有值的,默认是从0开始,依次递增1。当然在声明枚举类型的时候可以给枚举常量赋初值。

代码语言:javascript代码运行次数:0运行复制enum Color

{

RED=2,

GREEN=4,

BLUE=8

};可能有的读者对上面的一句话:枚举常量默认是从0开始的,依次递增1,这句话可能有点疑惑。

不过没有关系,请看下面的图,你就理解了:

枚举类型

有可能出现别的情况:

依次递增1

根据上面的例子,你可能就懂了,当我们需要给枚举常量一个初值时,可以完全按照我们自己的意愿来进行设置。

3. 枚举类型的优点细心的读者可能已经发现了,这个不是可以用#define定义一个常量,为什么非得要用枚举?

举个例子:

代码语言:javascript代码运行次数:0运行复制enum Color

{

RED,

GREEN,

BLUE

};能不能等价为?

代码语言:javascript代码运行次数:0运行复制#define RED 0

#define GREEN 1

#define BLUE 2浅浅的看一下,效果是一样的,可是枚举有潜在的优势。

枚举的优势:

增加代码的可读性和可维护性和#define定义的标识符⽐较枚举有类型检查,更加严谨。便于调试,预处理阶段会删除 #define 定义的符号使⽤⽅便,⼀次可以定义多个常量枚举常量是遵循作⽤域规则的,枚举声明在函数内,只能在函数内使⽤4. 枚举类型的使用代码语言:javascript代码运行次数:0运行复制enum Color

{

RED,

GREEN,

BLUE

};

enum Color clr = GREEN;//使用枚举常量给枚举变量赋值注意:一旦枚举常量的值确定下来之后,就不可以更改其值了。

那我们是否可以拿整数给枚举变量赋值呢?在C语言中时允许的,但在C++中时不行的,C++对于类型的检查是比较严格的。

相关推荐

若依Ruoyi是UI框架,还是前端框架,你能分清吗?

大美B端工场接到过几个基于若依框架的管理系统的项目,要对这些系统做颜值和体验的升级,很多人非常疑惑,Ruoyi到底是UI框架呢,还是前端

香港十大影帝排名 细数最牛香港男演员 香港影帝都有谁

香港十大影帝排名,本榜单主要依据演员获奖数(国际三大奖、台湾金马奖、香港金像奖等)、票房成绩、从影贡献、网络关注指数并综合参考

备份数据一般需要多长时间?以下是正确的备份方式

备份数据一般需要多长时间?计算机里面重要的数据、档案或历史记录,不论是对企业用户还是对个人用户,都是至关重要的。一时不慎丢失,