首页 理论教育 C语言程序设计中的枚举类型及用法

C语言程序设计中的枚举类型及用法

时间:2023-10-20 理论教育 版权反馈
【摘要】:在C语言中对这样取值比较特殊的变量可以定义为枚举类型。如:enum weekday{sun,mon,tue,wed,thu,fri,sat};//定义了一个枚举类型enum weekday该枚举名为weekday,枚举值共有7个,即一周中的7天。例如:这个赋值的意思是,将顺序号为2的枚举元素赋给day,相当于:从键盘输入一个整数,显示与该整数对应的枚举常量的英文名称。

C语言程序设计中的枚举类型及用法

在实际应用中,有的变量只有几种可能的取值。如人的性别只有2 种可能取值,星期只有7 种可能取值。在C语言中对这样取值比较特殊的变量可以定义为枚举类型。所谓枚举(enum)是指将变量的值一一列举出来,变量只限于列举出来的值的范围内取值。

1.枚举类型定义的一般形式

enum 枚举名{ 枚举值表};

在枚举值表中应罗列出所有可用值,这些值也称为枚举元素。如:

enum weekday{sun,mon,tue,wed,thu,fri,sat};//定义了一个枚举类型enum weekday该枚举名为weekday,枚举值共有7个,即一周中的7天。凡被说明为weekday类型变量的取值只能是7 天中的某一天。

2.枚举变量的说明

如同结构体和共用体一样,枚举变量也可用不同的方式说明,即先定义后说明、同时定义说明或直接说明。

设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式:

需要说明的有以下几点:

(1)枚举元素不是变量,而是常数,因此枚举元素又称为枚举常量。因为是常量,所以不能对枚举元素进行赋值。(www.xing528.com)

(2)枚举元素作为常量,它们是有值的,C语言在编译时按定义的顺序使它们的值为0,1,2,…。在上面的说明中,sun 的值为0,mon 的值为1,…,sat 的值为6,如果有赋值语句day=mon;则day变量的值为1。

(3)如果在定义枚举类型时指定元素的值,也可以改变枚举元素的值。例如:

这时,sun 为7,mon 为1,以后元素顺次加1,所以sat 就是6 了。

(4)一个整数不能直接赋给一个枚举变量,必须强制进行类型转换才能赋值。例如:

这个赋值的意思是,将顺序号为2的枚举元素赋给day,相当于:

【例10.13】从键盘输入一个整数,显示与该整数对应的枚举常量的英文名称。

程序代码:

运行结果:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈