萌导航

9.5C语言枚举类型

作者: 不爱洗头发 来源: 怪哈哈网 日期: 2015-09-29 10:19:46 人气: -

实际问题中,有些变量的取值被限制在一定范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等。

C语言提供了一种枚举(Enum)类型,可以列出所有可能的取值。定义形式为:

enum 变量名{ 枚举值列表 };

这些值也称为枚举元素。注意最后的分号;不能少。

例如,列出一个星期有几天:

enum week{sun, mon, tue, wed, thu, fri, sat};

和结构体一样,枚举变量可以先定义后说明,也可以在定义的同时说明,例如:

enum week a, b, c;

或者:

enum week{sun, mon, tue, wed, thu, fri, sat} a, b, c;

枚举值为常量,不是变量,不能赋值。枚举值默认从0开始,逐个加1。也就是说,上面的代码定义了7个常量,分别为 sun、mon…sat,它们的值分别为 0、1…6。

【示例】枚举的使用。

  1. #include <stdio.h>
  2. int main(){
  3. enum week{
  4. sun, mon, tue, wed, thu, fri, sat
  5. } a, b, c;
  6. a = sun;
  7. b = mon;
  8. c = tue;
  9. printf("%d, %d, %d\n",a,b,c);
  10. return 0;
  11. }

运行结果:
0, 1, 2

因为枚举值是常量,不能赋值,所以下面的写法是错误的:

sun = 5;
mon = 2;

只能把枚举值赋予枚举变量,例如:

a = sun;
b = sat;

同时,不建议把数值直接赋给枚举变量,例如:

a = 1;
b = 6;

如果一定要使用数值,必须使用强制类型转换:

a = (enum week)1;
b = (enum week)6;

因为已经使用了 sun、mon…sat 几个标识符,所以不能再使用它们来定义变量等,例如:

int sun = 3;
char mon;

都是错误的。


转载请注明文章来源(欢迎分享): http://www.guaihaha.com/c/5629.html

相关内容

关于怪哈哈
怪哈哈是一个集搞笑,美女,动漫,游戏,技术等为核心的综合性网站!
联系我们
商务洽谈、广告合作、友情链接、侵权举报,这些都可以联系我们哦!
关于我们 - 联系我们 - 广告服务 - 免责申明  
本站文字和图片均为严格审查筛选收藏,均收集整理于互联网,其著作权归原作者所有,如果有侵犯您权利的照片,请来信告知,我们将及时撤销相应文字和图片。
Copyright @2014-2020 怪哈哈网 All Rights Reserved。
【谢谢大家一直支持贵站!】