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语言中 枚举变量与枚举值,枚举类型变量再赋值问题相关推荐

  1. C/C++ 语言中的表达式求值

    转载地址:http://www.cnblogs.com/heyonggang/p/3340301.html 在此,首先向裘老师致敬! 裘宗燕:C/C++ 语言中的表达式求值 经常可以在一些讨论组里看到 ...

  2. 决定c++语言中函数的返回值类型的是,全国2009年10月高等教育自学考试C++程序设计试题及部分参考答案...

    全国2009年10月高等教育自学考试 C++程序设计试题 课程代码:04737 一.单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码 ...

  3. 裘宗燕:C/C++ 语言中的表达式求值

    裘宗燕:C/C++ 语言中的表达式求值 经常可以在一些讨论组里看到下面的提问:"谁知道下面C语句给n赋什么值?" m = 1; n = m+++m++; 最近有位不相识的朋友发em ...

  4. C/C++ 语言中表达式的求值

    原文http://www.math.pku.edu.cn/teachers/qiuzy/technotes/expression2009.pdf C/C++ 语言中表达式的求值  裘宗燕  北京大学数 ...

  5. 宇文成 C语言中求三个值中的最大值

    C语言中求三个值中的最大值 #include <stdio.h> //定于有参构造函数 int max(int x,int y); //定义主函数main int main(){ //定义 ...

  6. c语言如何求一个数学表达式的值,浅谈C语言中表达式的求值

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 C语言研究性学习的路线 现行的多数C语言教材有太多的误区,不仅不能给读者提供有效的学习线索,还常常"误导"读者,于是,"死记 ...

  7. 如何求c语言表达式的值,浅谈C语言中表达式的求值

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 C语言研究性学习的路线 现行的多数C语言教材有太多的误区,不仅不能给读者提供有效的学习线索,还常常"误导"读者,于是,"死记 ...

  8. c语言中字符串关于左值,关于左值lvalue和右值rvalue的一点理解

    发现很多朋友对"lvalue"和"rvalue"理解有误,我先谈谈自己对此的一些理解,并期望能够引起更多朋友的广泛讨论.也算起到抛砖引玉的作用吧.引用:注:这里 ...

  9. c语言中求余右值不能为小数,C语言知识点(2)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 2.3 整型数据 整形常量 在C语言程序中,整型常量可以用十进制.八进制和十六进制等形式表示.十进制基本常量用一串连续的数字表示,例如32767.-327 ...

最新文章

  1. 2021年大数据Flink(六):Flink On Yarn模式
  2. HBuilder 的快捷键
  3. java平台类成员访问修饰符_JAVA类的修饰符及访问权限
  4. 90 后 CTO 创业 6 年,做了一件改变互联网的“小事”
  5. 为什么有如此多的python版本
  6. python小程序源代码-10个Python练手小程序
  7. JVM详解之:java class文件的密码本
  8. linux dhcp解释,教会你Suse Linux DHCP服务器配置详解
  9. 使用 rqt_console 和 roslaunch
  10. c语言统计数字字母个数,请问这个用c怎么做:输入一串字符,分别统计其中数字和字母的个数...
  11. 代码写好了怎么在php里裕兴_8 行代码用Python画一个中国地图
  12. HYSBZ - 2243 染色 (树链剖分+线段树)
  13. 计算机c语言程序设计题,《计算机C语言程序设计》模拟题集.doc
  14. scapy获取ip_如何使用scapy从数据包中读取整个ip层和tcp层?
  15. 获取mysql存储过程返回值_MySQL函数,存储过程,用户管理
  16. 魅族16s解决杀后台方法!
  17. IK和pinyin分词器
  18. windows 无法对计算机进行启动到,windows无法启动无法启动怎么办,windows无法启动的9种解决方法...
  19. PostgreSQL AUTO INCREMENT
  20. 前端CSS核心内容浮动

热门文章

  1. 短短十言,把人生说透了.
  2. 数据仓库中的数据粒度
  3. Abp 构造注入服务接口后运行报错 Host terminated unexpectedly!
  4. Linux--用history查看历史命令如何在history命令时,查看历史命令执行时间
  5. svn无法checkout问题
  6. 2022大学生免费(24元)申请个人软著专利(微信小程序)
  7. 阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别
  8. 基于Matlab的双目相机标定
  9. 姓名+身份证号+人脸动态实名认证(百度)
  10. 第四周-圆柱体的表面积