2015年软件水平考试程序员之程序设计知识要点(26)
发布时间:2012/5/14 9:42:28 来源:城市网学院 编辑:ziteng
7.3 列举型和列举型变量1.列举型
除数字、文字信息之外,还有专用名称信息,如反映电梯运行状况的有上(UP) ,下(DOWN) ,停(sTOP) ;又如暗示礼拜几的名称等。为提高轨范描述问题时的直不美观性,惹人列举型。轨范用列举体例列举一组标识符作为列举型的值的集结。当一个变量具有这种列举型时,它就能取列举型的标识将值。界说列举型的一般形式为
enum 列举型名 {列举常量1,列举常量2,……,列举常量n};
其中enum是列举型的指导字,列举型名是标识符,列举常量也是用户指定的标识符,但它们被轨范看作常量,习惯称它们为列举常量。例如:
enum weekday { SUN, MON, TUE, WED, THU, FRI, SAT};
凡是,每个列举常量都是有意义名称符号,但对轨范自己来说,这些列举常量并不自动代表什么寄义。例如,并不因为写成SAT就自动暗示“礼拜六”,不写SAT写成SATDAY或任何其它标识符也是可以的。对于编译系统来说,列举型中的标识符只是一组互不不异的标识符而已,标识符自己的字面意义只是供阅读轨范的人便于理解轨范。
为了便于措置列举型,编译系统将每个列举常量与一个整数相联系,即列举常量在内部被视作一个整数,值的巨细由它们在列举型中呈现的挨次确定,依次为0,l,2,…。如在膳缦沔的界说中,SUN值为0,MON值为1,……,SAT值为6。列举型变量的值也可输出。例如:
printf(“%d \n”, SUN);
将输出整数0。
列举常量的对应整数也可由轨范直接指定。如
enum weekday { SUN= 7, MON= l, TUE, WED, THU, FRI, SAT};
指定SUN为7,MON为1,后面未指定对应整数的列举常量所代表的整数,则是前一个列举常量代表的整数加1。所以在上述界说中,TUE为2,……,SAT为6。
因列举常量代表一个整数,统一列举型的变量、列举常量或整数彼此间都可以作关系斗劲。
2.列举型变量
界说列举型变量也有以下多种体例:
(1)先界说列举型,然后界说列举型变量、列举型数组、列举型指针等。
(2)界说列举型同时界说列举型变量、列举型数组、列举型指针等。
(3)界说无名列举型同时界说列举型变量、列举型数组、列举型指针等。例如:
enum weekday today, yesterday, tomorrow;
enum { RED, YELLOW, BLUE } color;
界说列举型 enum weekday的变量 today,yesterday,tomorow;界说列举型变量 color。例如:
today=SUN; tomorrow = MON;
yesterday =SAT ; color= YELLOW;
使用列举型,除能命名见名议意的标识符外,对标识符值的内部实现,轨范员可以不必考虑。此外,一个变量具有列举型,还能反映变量值的有限性。列举型变量常用于轮回的节制变量,列举常量用于多路选择节制的情形。