C语言中如何使用枚举类型
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇文章为大家展示了C语言中如何使用枚举类型,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。枚举是C语言里面所定义的一种基本数据类型,它可以使程序变得更加简介,
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
电信代理服务器江苏云空间
变电站网络安全监测装置ii型
手机生产测试软件开发
三大中文数据库都可以二次检索吗
网络安全有五个基本要素
iconvert 数据库
服务器访客管理制度
深圳市科创网络技术有限公司
深圳市蓝思网络技术有限
游族网络安全岗咋样
网络安全 华三 360
机械软件开发使用方法
2019 网络安全
教育网络安全自查报告
c odbc连接数据库
安徽服务器虚拟化定制虚拟主机
病人和药物管理系统数据库设计
濮阳软件开发专业
网络技术部经理百度推广
服务器主机能安装win8吗
长沙网络安全即将开启
广科网络技术有限公司
配置及验证DHCP服务器
武汉纳杰互联网科技公司
怎么用图形看数据库
最笙单的网络安全手抄包
网络安全教育打油诗
国家网络安全法治宣传标语
迷你世界服务器配置是什么意思
数据库的实验原理