枚举类型再讲.doc

枚举类型再讲.doc

ID:59376468

大小:22.50 KB

页数:2页

时间:2020-09-04

枚举类型再讲.doc_第1页
枚举类型再讲.doc_第2页
资源描述:

《枚举类型再讲.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1、什么是枚举类型枚举就是将一个变量所有可能的取值都列举出来。枚举类型是一组整型常量的集合,枚举类型所包含的整型常量通常是一组有意义的符号串。2、为什么使用枚举类型?1)使用枚举类型(而不直接使用整型常量)来区分整数和其他代码,最大的好处是使得阅读程序的人看到表明自身意义的符号,从而有助于理解程序。程序更直观,可读性更强2)其次,枚举变量的取值范围只限于定义时所列出的枚举常量的值,如果赋予一个其他的取值,将会出现错误,这样便于检查。3、枚举类型的定义enum枚举名{枚举常量1,枚举常量2,……};其中,enum是关键字,是枚举类型的标志。枚举名是由用户定义的标识符,它代表了所定

2、义的枚举类型的名称,定义时枚举名也可以省略。先定义枚举类型,在定义变量。例如:enumboolean{NO,YES};//定义枚举类型enumbooleanb1,b2;//定义枚举类型变量4、枚举类型的变量赋值枚举常量可赋给同类型的枚举变量;同类型的枚举变量之间也可以赋值,但不能把一个整数直接赋给一个枚举类型变量。enumboolean{NO,YES};b1=1;是不对的,它们不是同一种类型。应先进行强制类型转换,如:b1=(enumboolean)1;相当于把序号值为1的枚举常量赋给b1,即:b1=YES;5、枚举数据的输入和输出一个枚举值不能直接输入输出,但可以作为整数进行

3、输入和输出,但此时输入输出的都是其序号,而不是枚举常量本身。如果希望输出枚举常量,可以采用switch来实现。switch(b1){caseNO:printf(“NO”);break;caseYES:printf(“YES”);break;}由此可见,编写枚举常量的输入和输出是相当繁琐的。有时,可以定义一个字符串数组,用枚举值作为数组下标,把枚举值翻译成相应字符串。例如编写一个程序,输入今天是星期几,计算若干天后是星期几。charweekstring[][10]={“Sun”,”Mon”,”Tue”,”Wed”,”Thu”,”Fri”,”Sat”};enumweek{Sun=0

4、,Mon,Tue,Wed,Thu,Fri,Sat};voidmain(void){intd;enumweektoday,w;printf(“今天是星期:”);scanf(“%d”,&today);printf(“输入天数:”);scanf(“%d”,&d);printf(“今天是星期%s”,weekstring[today]);w=(enumweek)((today+d)%7);printf(“%d天后是星期%s”,d,weekstring[w]);}6、枚举常量枚举类型中的枚举常量必须是用户定义的标识符。1)枚举常量都有一个序号值;第一个枚举常量序号值为0,第二个为1

5、,依此类推。当然也可以在定义时指定枚举常量的序号值。enumseason{SPRING=1,SUMMER=2,AUTUMN=3,WINTER=0};2)、如果定义时只指定了一个枚举常量的序号,则其后的枚举常量的序号值按顺序加1。3)、不同的枚举常量可以有相同的值。enumstatus{LOSS=-1,BYE,TIE=0,WIN};4)、同一个作用域内的枚举类型中不能有相同的枚举常量。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。