C语言中如何使用枚举类型
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇文章为大家展示了C语言中如何使用枚举类型,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。枚举是C语言里面所定义的一种基本数据类型,它可以使程序变得更加简介,
千家信息网最后更新 2025年02月01日C语言中如何使用枚举类型枚举是C语言里面所定义的一种基本数据类型,它可以使程序变得更加简介,更加易读。枚举的定义类似于我们数学里面的有限集合,如一周有7天,分别是SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY。那我们在编程时定义这些星期天数的时候,就可以将其定义为一个枚举,此后的使用中只要用到这个枚举类型定义的变量,其值也就是这七个星期天数中的任意一天。以下内容,我们就以这七个星期天数为例,开始我们枚举的讲解。 枚举的说明与结构和联合相似, 其形式为:
当然,我们也可以使用typedef关键词,将一个枚举定义成一种模板数据类型,其形式为: 与结构体和共用体不一样的是,一个枚举内部的成员不能被显示地指定数据类型,枚举中的成员只能是整型数值,这些数值你可以显示地指出来,或者使用编译器分配的默认值。另外,枚举内部的成员并不是变量,它们只不过是一系列的标识符而已,其属性和常量一致,因此在我们使用枚举内部成员的时候,除了初始化以外便不可以再随便对其赋值了。如,我们可以将一周七天定义成一种枚举类型。 这里再注意一下枚举定义时和结构体联合体定义的区别,每一项数据成员之后都是以逗号结尾的,而不是分号。最后一项后面的逗号可以省略。 以上就是定义一个枚举类型,并且显示地指明这个枚举内部每一个标识符的值。一旦当枚举变量Wekday被定义好之后,我们就可以使用枚举定义时里面的标识符对其进行赋值了,如Wekday = THURSDAY。 当然,如果我们不想对每一项的枚举标识符进行赋值,我们也可以使用省略的写法来完成,只要显示地指明出第一个成员的值,后面的枚举值都会在第一个成员值的基础上往后增1。 上面这段代码,虽然没有显示地指明枚举中标识符的每个数值,但是它显示地指明了SUNDAY为0,那么编译器就会显示地在0的基础上分别递增1,并且按顺序赋给下面的标识符,如MONDAY就为1,TUESDAY就为2,依次类推。如图1所示,这里注意下,我们对枚举变量赋值时,虽然可以直接使用标识符,如Wekday= MONDAY,但是用printf函数打印时,我们还是需要使用"%d"将其作为整数打印出来,打印的结果也是一个个整型数字。 图1枚举变量的打印
如果中途对枚举中某一标识符再赋值,那么这个被赋值标识符后面的标识符都会顺延加1。如图2所示。 图2 中途修改枚举标识符的值
当然,枚举中标识符的值可以出现重复,但无论怎么变,枚举中的标识符都满足一条规律,即显式指明标识符后面的标识符都会增1。如图3所示,我们将标识符WEDNESDAY再显示地指明为0,那么其后面的标识符都会从0开始自增。 图3 枚举标识符显式重复指明数值 还需要注意一点的是,在C语言中,枚举只是一种让程序变得明了的手段,并不能对变量的值进行限定,这一点很重要,因此,你可以对枚举任意赋值。对于MinGW来说,哪怕直接对枚举变量赋值浮点数,编译器也不会抛出警告,最多将其作为整数来处理。如图4所示。
本篇文章为大家展示了C语言中如何使用枚举类型,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
enum 枚举名{ 标识符[=整型常数], 标识符[=整型常数], ... 标识符[=整型常数] } 枚举变量;
typedef enum { 标识符[=整型常数], 标识符[=整型常数], ... 标识符[=整型常数] } 枚举数据类型;
typedef enum
{
SUNDAY= 0,
MONDAY= 1,
TUESDAY = 2,
WEDNESDAY = 3,
THURSDAY = 4,
FRIDAY = 5,
SATURDAY = 6
} EWeekday_t;//定义枚举类型
EWeekday_t Wekday; //定义枚举变量
typedef enum{ SUNDAY= 0, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY , SATURDAY} EWeekday_t;//定义枚举类型EWeekday_t Wekday; //定义枚举变量
上述内容就是C语言中如何使用枚举类型,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
标识
标识符
类型
变量
成员
常数
数据
语言
数值
如图
内容
天数
结构
编译器
编译
基础
就是
形式
技能
整数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
将进酒小说软件开发
广州独立书店数据库
网络安全主要解决的问题包括
软件开发老师暑期培训
浪潮物理服务器安装系统
高级软件开发工程师 模板
美国访问快服务器
mir4服务器断开连接104
uso软件开发
没有网络安全就没有国家
泉州市枫蓝网络技术有限公司
聊天软件开发java
重庆东硕软件开发有限公司
用户与服务器联系协议
网络安全评估的等级
川航 软件开发岗
郑州师范学院数据库
卫星网络安全专家
hdfs不是数据库
华为网络技术书下载
数据库系统是什么软件
关于冬奥会网络安全
游戏软件开发大脑缺氧
网络技术中心
5G无线网络技术标准是什么
绝地求生上为啥一直服务器繁忙
软件开发成本和费用怎么界定
喜购多网络技术有限客服公司
计算网络技术综合实训
华为新机无法连接服务器