C语言中 枚举变量与枚举值,枚举类型变量再赋值问题
1.枚举定义及其使用
1.1 定义
枚举是一种特殊的整型,关键词为enum,将变量的值一一列举出来,变量的值只限于列举出来的值的范围内
1.2 使用
枚举的定义使用
enum msgtype {
eone,
etwo;
};
1.3 枚举类型注意点:
- 在枚举值表中应列出所有可用值,也被称为枚举元素
- 枚举值是常量,只能在初始化的时候给定一个值,不能在程序中用赋值语句再对它赋值!!!!
typedef enum { DG=0, DN, UDG, UDN } test;
//注意test就是我这里给这个枚举类型自定义的一个新的类型名,类似与int,float等。
DG=2; 这就是错的,因为DG是一个常量,无法再被修改
- 注意,一定是不能再次对枚举值再赋值的,要赋值只能是对枚举变量再次赋值。而且就算是对枚举变量赋值也只能用枚举值对枚举变量赋值,不能直接用数字对枚举变量进行赋值,如果非要用数字赋值的话,前面必须加上一个强制类型转换。举例如下:
typedef enum { DG, DN, UDG, UDN } test;
//注意test就是我这里给这个枚举类型自定义的一个新的类型名,类似与int,float等。
test b;b=2 // 注意此处虽然是对枚举变量赋值,赋的范围虽然也在枚举值范围内,但这是错的,因为你不能用数字直接对其进行赋值。
b=(test)2 这样就可以了,加一个枚举类型的强制转换即可。
typedef enum { DG, DN, UDG, UDN } test;
//注意test就是我这里给这个枚举类型自定义的一个新的类型名,类似与int,float等。
test b;
b = UDG; //b是一个枚举变量,而UDG是一个枚举值常量,这样赋值就是正确的
printf("%d", b);
- 枚举元素本身由系统定义了一个表示序号的数值从0开始顺序定义为0,1…(就是枚举中的那些类型默认从上往下给了一个数值代号)
C语言中 枚举变量与枚举值,枚举类型变量再赋值问题相关推荐
- C/C++ 语言中的表达式求值
转载地址:http://www.cnblogs.com/heyonggang/p/3340301.html 在此,首先向裘老师致敬! 裘宗燕:C/C++ 语言中的表达式求值 经常可以在一些讨论组里看到 ...
- 决定c++语言中函数的返回值类型的是,全国2009年10月高等教育自学考试C++程序设计试题及部分参考答案...
全国2009年10月高等教育自学考试 C++程序设计试题 课程代码:04737 一.单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码 ...
- 裘宗燕:C/C++ 语言中的表达式求值
裘宗燕:C/C++ 语言中的表达式求值 经常可以在一些讨论组里看到下面的提问:"谁知道下面C语句给n赋什么值?" m = 1; n = m+++m++; 最近有位不相识的朋友发em ...
- C/C++ 语言中表达式的求值
原文http://www.math.pku.edu.cn/teachers/qiuzy/technotes/expression2009.pdf C/C++ 语言中表达式的求值 裘宗燕 北京大学数 ...
- 宇文成 C语言中求三个值中的最大值
C语言中求三个值中的最大值 #include <stdio.h> //定于有参构造函数 int max(int x,int y); //定义主函数main int main(){ //定义 ...
- c语言如何求一个数学表达式的值,浅谈C语言中表达式的求值
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 C语言研究性学习的路线 现行的多数C语言教材有太多的误区,不仅不能给读者提供有效的学习线索,还常常"误导"读者,于是,"死记 ...
- 如何求c语言表达式的值,浅谈C语言中表达式的求值
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 C语言研究性学习的路线 现行的多数C语言教材有太多的误区,不仅不能给读者提供有效的学习线索,还常常"误导"读者,于是,"死记 ...
- c语言中字符串关于左值,关于左值lvalue和右值rvalue的一点理解
发现很多朋友对"lvalue"和"rvalue"理解有误,我先谈谈自己对此的一些理解,并期望能够引起更多朋友的广泛讨论.也算起到抛砖引玉的作用吧.引用:注:这里 ...
- c语言中求余右值不能为小数,C语言知识点(2)
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 2.3 整型数据 整形常量 在C语言程序中,整型常量可以用十进制.八进制和十六进制等形式表示.十进制基本常量用一串连续的数字表示,例如32767.-327 ...
最新文章
- 2021年大数据Flink(六):Flink On Yarn模式
- HBuilder 的快捷键
- java平台类成员访问修饰符_JAVA类的修饰符及访问权限
- 90 后 CTO 创业 6 年,做了一件改变互联网的“小事”
- 为什么有如此多的python版本
- python小程序源代码-10个Python练手小程序
- JVM详解之:java class文件的密码本
- linux dhcp解释,教会你Suse Linux DHCP服务器配置详解
- 使用 rqt_console 和 roslaunch
- c语言统计数字字母个数,请问这个用c怎么做:输入一串字符,分别统计其中数字和字母的个数...
- 代码写好了怎么在php里裕兴_8 行代码用Python画一个中国地图
- HYSBZ - 2243 染色 (树链剖分+线段树)
- 计算机c语言程序设计题,《计算机C语言程序设计》模拟题集.doc
- scapy获取ip_如何使用scapy从数据包中读取整个ip层和tcp层?
- 获取mysql存储过程返回值_MySQL函数,存储过程,用户管理
- 魅族16s解决杀后台方法!
- IK和pinyin分词器
- windows 无法对计算机进行启动到,windows无法启动无法启动怎么办,windows无法启动的9种解决方法...
- PostgreSQL AUTO INCREMENT
- 前端CSS核心内容浮动
热门文章
- 短短十言,把人生说透了.
- 数据仓库中的数据粒度
- Abp 构造注入服务接口后运行报错 Host terminated unexpectedly!
- Linux--用history查看历史命令如何在history命令时,查看历史命令执行时间
- svn无法checkout问题
- 2022大学生免费(24元)申请个人软著专利(微信小程序)
- 阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别
- 基于Matlab的双目相机标定
- 姓名+身份证号+人脸动态实名认证(百度)
- 第四周-圆柱体的表面积