枚举类型就相当于助记符,帮助程序员记忆的。比如现在要画一张地图,用到红黄蓝绿四种颜色。为了存储方便,我们规定0=红,1=黄,2=蓝,3=绿。但是当编程到某一阶段时,程序员可能忘记了哪个数字具体对应哪种颜色,或者忘记了到底有多少个数字,这时他就要去查表,这样会耽误时间。此时就可以定义一个枚举类型enum color{Red,Yellow,Blue,Green},这样系统就会自动将0、1、2、3和这个枚举类型中的每个元素一一对应起来,程序员只需要记住"Red"、"Green"等单词即可,而且不会出现“4”之类的定义之外的数字。下面小编就为大家介绍下c语言枚举类型的用法。
c语言枚举类型的用法如下: 1. 枚举的定义枚举类型定义的一般形式为: enum 枚举名{ 枚举值表 }; 在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。 例如: 该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。 2. 枚举变量的说明 如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。 设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式: enum weekday{ sun,mou,tue,wed,thu,fri,sat }; enum weekday a,b,c; 或者为: enum weekday{ sun,mou,tue,wed,thu,fri,sat }a,b,c; 或者为: enum { sun,mou,tue,wed,thu,fri,sat }a,b,c; 枚举类型在使用中有以下规定: 1. 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。 例如对枚举weekday的元素再作以下赋值: sun=5; mon=2; sun=mon; 都是错误的。 2. 枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。 【例11.10】 main(){ enum weekday { sun,mon,tue,wed,thu,fri,sat } a,b,c; a=sun; b=mon; c=tue; printf("%d,%d,%d",a,b,c); } 说明: 只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。 如: a=sum; b=mon; 是正确的。而: a=0; b=1; 是错误的。如一定要把数值赋予枚举变量,则必须用强制类型转换。 如: a=(enum weekday)2; 其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于: a=tue; 还应该说明的是枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。 [c-sharp] view plain //此代码在VS中编不过去,枚举类型不能做自增操作 //在GCC中据说能编过去,没试过 main(){ enumbody {a,b,c,d}month[31],j; inti; j=a; for(i=1;i<=30;i++){ month[i]=j; j++;//在VS中出错 if(j>d)j=a; } for(i=1;i<=30;i++){ switch(month[i]) { casea:printf("%2d%c/t",i,'a');break; caseb:printf("%2d%c/t",i,'b');break; casec:printf("%2d%c/t",i,'c');break; cased:printf("%2d%c/t",i,'d');break; default:break; } } printf("/n"); } 若想在VS中编译,请看下面代码: [c-sharp] view plain enumbody {a,b,c,d}month[31],j; inti; j=a; for(i=1;i<=30;i++) { month[i]=j; j=(enumbody)(j+1);//这样改下即可,强制转换下 if(j>d)j=a; } for(i=1;i<=30;i++) { switch(month[i]) { casea:printf("%2d%c/t",i,'a');break; caseb:printf("%2d%c/t",i,'b');break; casec:printf("%2d%c/t",i,'c');break; cased:printf("%2d%c/t",i,'d');break; default:break; } } printf("/n");
c语言枚举类型的用法
英语社
人气:2.07W
猜你喜欢
- 1c语言eof的用法
- 2c语言map的用法
- 3c语言new的用法
- 4c语言单引号的用法
- 5c语言int的用法
- 6c语言数组的用法
- 7c语言结构体的用法
- 8c语言的用法总结
- 9c语言case的用法
- 10分类词汇课堂 投票选举用语
- 11c语言大括号的用法
- 12c语言链表的用法
- 13c语言pow的用法
- 14c语言char的用法
- 15c语言方括号的用法
更多推荐
- 12015年第三期广东东莞会计从业资格考试科目
- 2两路中继器是什么意思、英文翻译及中文解释
- 32014会计从业资格考试《会计基础》判断题3
- 4agamospecies是什么意思、英文翻译及中文解释
- 5中国玉米会重蹈大豆的覆辙吗
- 6江西2014年会计从业资格考试《会计基础》模拟多选题二
- 7【黑子的篮球 第二季】第30Q 恭候多时 18
- 8know同音词
- 9潘基文年世界新闻自由日致辞大纲
- 10结构等价性是什么意思、英文翻译及中文解释
- 11basic motion study是什么意思、英文翻译及中文解释大纲
- 12细粒英石是什么意思、英文翻译及中文解释
- 13三轴地磁仪是什么意思、英文翻译及中文解释
- 14商务英语口语学习有速成方法吗
- 15英语中如何去表达不开心的意思