欢迎来到天天文库
浏览记录
ID:59376468
大小:22.50 KB
页数:2页
时间:2020-09-04
《枚举类型再讲.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)、同一个作用域内的枚举类型中不能有相同的枚举常量。
此文档下载收益归作者所有