首页 理论教育C语言程序设计实用教程:枚举型使用及范围

C语言程序设计实用教程:枚举型使用及范围

【摘要】:例如,一个星期内只有7天,一年只有12 个月,一个班每周有6 门课程等。为此,C语言提供了一种称为“枚举”的类型。被说明为该“枚举”类型的变量取值,不能超过定义的范围。例如:3.说明枚举型仅适用于取值有限的数据。例如现行历法规定,一周7 天,一年12 个月。取值表中的值称为枚举元素,其含义由程序解释。、Sat=6,所以 Mon>Sun,Sat 最大。例如:如果enum weekdays{Sun=7,Mon=1,Tue,Wed,Thu,Fri,Sat};则Sun=7,Mon=1,从Tue=2开始,依次增1。

在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有7天,一年只有12 个月,一个班每周有6 门课程等。如果把这些量说明为整型、字符型或其他类型,均不能准确地表达其含义。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值。被说明为该“枚举”类型的变量取值,不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是构造类型,因为它不能再分解为任何其他基本类型。

1.枚举类型的定义

例如:

2.枚举变量的定义

枚举变量的定义与共用体变量类似。

(1)间接定义。例如:

(2)直接定义。例如:(www.chuimin.cn)

3.说 明

(1)枚举型仅适用于取值有限的数据。例如现行历法规定,一周7 天,一年12 个月。

(2)取值表中的值称为枚举元素,其含义由程序解释。不因为写成“Sun”就自动代表“星期天”。事实上,枚举元素用什么表示都可以。

(3)枚举元素作为常量是有值的,即定义时的顺序号(从0 开始),所以枚举元素可以比较,比较规则是序号大的为大。例如上例中的Sun=0、Mon=1、……、Sat=6,所以 Mon>Sun,Sat 最大。

(4)枚举元素的值也是可以人为改变的,在定义时由程序指定。例如:

如果enum weekdays{Sun=7,Mon=1,Tue,Wed,Thu,Fri,Sat};则Sun=7,Mon=1,从Tue=2开始,依次增1。