266
程序中结构体和联合体相互嵌套,结构体中有联合体成员,联合体中又有结构体成员。程序中定义的e是结构体数组,它有3个元素。定义时对每个元素的前4个成员赋了初值。然后根据数组e的每个元素的flag成员的值确定元素中最后一个成员值的输入,如果是'm'则按已婚家庭形式输入家庭情况,否则按单身情况输入家庭情况。同样,在输出职工信息时,也有两种不同形式。
实际应用中,根据需要也可以使用联合体数组、联合体指针。联合体变量、指向联合体的指针变量也可以做函数形参。具体规则在此不再赘述。
10.6 枚 举
在实际应用中,有些变量的取值被限定在某一范围内。例如,一个星期内有七天,一年有十二个月,某物品只有五种固定的颜等。如果把这些量说明为整型或者字符型当然是不妥当的,C语言中提供了一种称为“枚举”的类型,可以很好地解决这类问题。枚举是具有名字的若干常量的有序集合。枚举类型中列举出所有可能的取值,定义为该枚举类型的变量取值不能超过枚举限定的范围。
enum c++10.6.1 枚举类型的定义
枚举类型通过枚举一系列有序的标识符来定义。枚举类型定义的一般格式为:
enmu枚举类型名{枚举分量名1,枚举分量名2,…,枚举分量名n};
其中,enmu是定义枚举类型的关键字。枚举名遵循标识符命名规则,用于标识所定义的枚举类型。枚举分量是一个合法的标识符,又称为枚举常量,表示的是枚举类型数据变量可以具有的值。例如:enum week {sun ,mon,tue,wed,thu,fri,sut};
定义了一个枚举类型enmu week,它由枚举常量sun、mon、tue、wed、thu、fri、sut组成,即一个enmu week类型的枚举变量可以具有的值为sun、mon、tue、wed、thu、fri和sut。
枚举类型中的枚举常量各自隐含一个int型值。在默认情况下,枚举常量的值从0开始,后一个总是比前一个大1。如在枚举类型enmu week中,第1个枚举常量sun值为0,第2个枚举常量mon值为1,依次类推,最后一个枚举常量sat值为6。也可以通过显式赋值的方法来确定枚举常量的值。例如:
enum week {sun=7,mon=1,tue,wed,thu,fri,sat};
定义中通过显式赋值的方式来确定枚举分量sun的值是7,mon的值是1。tue没有被显式赋值,它的值是前一个枚举常量的值加1,即为2,同样wed值为3,…sat的值为6。
10.6.2 枚举变量的定义和引用
定义了枚举类型后,就可以定义该枚举类型的变量。与结构体变量和联合体变量定义相似,枚举变量的定义也有3种方法。以enum week类型为例,说明如下:
1.先定义枚举类型,再定义枚举变量
enum week {sun,mon,tue,wed,thu,fri,sat};
enum week day1,day2;
2.定义枚举类型的同时定义枚举变量
enum week {sun,mon,tue,wed,thu,fri,sat} day1,day2;
3.直接定义枚举变量
enum {sun,mon,tue,wed,thu,fri,sat} day1,day2;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。