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

C语言程序设计教程枚举类型及其用法

时间:2023-10-27 理论教育 版权反馈
【摘要】:为此,C语言提供了一种称为“枚举”的类型。例如:枚举类型名为weekdays,枚举值共有7个,对应一周中的7天。声明枚举类型的同时定义枚举变量。例如:例7-9枚举类型使用示例。把枚举看成是一个新的类型,是和整数不同的,尽管枚举值在计算机内部是用整数来表示的。

C语言程序设计教程枚举类型及其用法

在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月等。如果用一个整型变量来表示星期几,指定0到6为合法的值,似乎也是可以的,但缺点是在数值和星期几间的联系并不直观,另一方面,该变量中是可以存放非法值的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。也就是说,枚举类型是专为需要限定取值范围的一类变量而设计的一种数据类型,该类型的定义只须将变量允许取的值一一列举出来。

1.枚举类型的定义

枚举类型定义的一般格式如下:

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

枚举类型名为weekdays,枚举值共有7个,对应一周中的7天。凡是被定义为weekdays类型的变量的取值只能是这7个枚举值之一。

2.枚举变量的定义

如同结构体类型和共用体类型一样,枚举变量也有不同的定义方式。设有变量today、yesterday被说明为weekdays类型,下面举例加以说明。

(1)先声明枚举类型后再定义枚举变量。

(2)声明枚举类型的同时定义枚举变量。

(3)直接定义枚举变量。

(www.xing528.com)

3.枚举类型的使用

枚举类型用于取值有限的数据,在使用中有以下规定。

①枚举值是常量,不是变量,不能在程序中用赋值语句再对它赋值。

②枚举元素本身由系统定义了一个表示序号的数值,默认从0,1,2,…。如在weekdays中,Sun值为0,Mon值为1,…,Sat值为6。

③只能将枚举值赋给枚举变量,不能把元素值直接赋给枚举变量。例如:

例7-9 枚举类型使用示例。

程序运行的结果如图7-13所示。

图7-13 程序运行结果

枚举值都由一个具体的“整数数值”来表示,默认第一个枚举值为0,依次累加。

但通常并不直接使用该数值,很显然Sun表示星期天,比0来表示星期天更容易被人理解。把枚举看成是一个新的类型,是和整数不同的,尽管枚举值在计算机内部是用整数来表示的。

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

我要反馈