enum在c++语言中是什么意思?c语言enum用法是什么意思
enum是c语言的关键字 。枚举数据类型称为枚举数据类型 , 枚举数据类型描述整数值的集合 。枚举类型是预处理指令#define的替代 , 枚举与宏非常相似 。宏在预处理阶段用相应的值替换名称 , 枚举在编译阶段用相应的值替换名称 。
typeName是枚举类型的名称 , 大括号中的元素(枚举成员)是常量而不是变量 。这个请一定要弄清楚 。枚举成员的是常量 , 因此不能为它们赋值 。只能分配给其他变量枚举类型(枚举标签)、枚举成员(枚举常量)、枚举变量的差异 。如果枚举类型和枚举变量定义在一起 , 则可以不写枚举类型的名称(枚举week中的week ) 。
第一个:
enum week{Mon=1 , Tues , Wed , Thurs}num;
第二个:
enum {Mon=1 , Tues , Wed , Thurs}num;
这其实和结构体中的无名结构很相似 。定义枚举类型变量和定义结构类型变量看起来很相似 , 但两者之间的差异很大 。一个结构型变量包含多个成员 , 相当于打包的快递箱 。
另一方面 , 枚举类型变量是不同的 。枚举类型变量不是包含几个成员的集合 。枚举类型变量与int和char类型的变量实际上相同 。但是 , 枚举类型变量的赋值只能在自己的枚举成员中赋值 。num赋值只能使用枚举成员Mon、Tues、Wed和Thurs , 不能为其他枚举类型的枚举成员赋值 。
文章插图
枚举变量的定义与结构变量的定义相同 , 有两种定义方法:
第一个是(定义枚举类型的同时定义枚举变量) 。
enum week{Mon=1 , Tues , Wed , Thurs}num;
第二(定义枚举类型 , 然后定义枚举变量) 。
enum week{Mon=1 , Tues , Wed , Thurs};enum week num;
枚举类型的特征:
用另一个例子说明枚举类型的特征
例1:( 不明确说明枚举常量的值) 。
enum week{Mon , Tues , Wed , Thurs , Fri , Sat , Sun};
如果未显示说明 , 则枚举常量(即大括号中的常量名称)默认情况下第一个枚举常量的值为0 , 然后为每个枚举常量递增1 , 因此请尝试使用Mon=0、Tues=1 , Sun=6进行验证enum week{Mon , Tues , Wed , Thurs , Fri , Sat , Sun};printf ( mon=% d\NTU es=% d\nwed=% d\nthu RS=% d\nfri=% d\nsat=% d\nsun=% d\n ' , mon , Tues
执行结果:
文章插图
例2:(显示说明部分列举常数的值) 。
enum week{Mon=1 , Tues , Wed , Thurs , Fri , Sat , Sun};
上面的代码只明确显示枚举常量Mon的值为1 , 未指定的枚举名称的值从最后指定的值向后依次递增 。请注意 , 这是最后指定的值
enum week{Mon=1 , Tues , Wed , Thurs , Fri , Sat , Sun};
printf ( mon=% d\NTU es=% d\nwed=% d\nthu RS=% d\nfri=% d\nsat=% d\nsun=% d\n ' , mon , Tues
执行结果:
文章插图
执行结果:
文章插图
例3:(赋值给枚举变量) 。
enum week{Mon=1 , Tues , Wed , Thurs}num;num=(enumweek ) 10;printf('%d ' , num );
整数不能直接分配给枚举变量 。必须先按枚举变量所属的枚举类型进行类型强制转换 , 然后再赋值 。在上面的代码中 , 将10赋值给枚举变量时执行的强制类型转换在将整数常量10转换为enum week类型后将其赋给num变量 。
总结:
1、如果未显示说明 , 枚举常量(即大括号中的常量名称)默认情况下第一个枚举常量的值为0 , 然后为每个枚举常量递增12、部分显示说明时 , 未指定枚举名称的值将根据前面指定的值之一向后依次递增;
3、整数不能直接赋给枚举变量 。必须先按枚举变量所属的枚举类型进行类型强制转换 , 然后再分配值;
4、同一枚举类型内的不同枚举成员可以具有相同的值;
推荐阅读
- 影响客厅风水的客厅字画内容
- 丰臣秀吉还有后代吗?丰臣秀吉在日本地位
- 一个人对待家人的态度就是?做一个让父母放心的人
- 苏联英雄瓦西里扎耶采夫
- 12pro激光雷达扫描仪在哪里,12pro激光雷达怎么扫描-
- python的5种数据结构,方法很多记不住吗?全在这里了.
- 项羽因为在鸿门宴上不杀刘邦而失天下嘛
- jenkins实现接口自动化持续集成
- Xml序列化
- 睡前足浴有哪些好处