内容正文:
第10章自定义数据类型
第10章自定义数据类型
定义结构型
结构型指针变量
链表
联合型
枚举型
为类型定义别名
联合型
这节课我们讨论联合型。
3
10.2 联合型
联合型用关键字union定义,一般形式为
union 联合型名
{
类型 变量名;
……
类型 变量名;
};
联合型成员变量共享一个存储单元。
联合型用关键字union定义,一般形式为
union 联合型名
{
类型 变量名;
……
类型 变量名;
};
联合型成员变量共享一个存储单元。
4
联合型
语句union data
{
int i;
double f;
};
定义了一个名为union data的联合型。语句union data u;定义了一个联合型变量u,它有两个成员变量u.i和u.f,它的内存状态如图所示。
语句union data
{
int i;
double f;
};
定义了一个名为union data的联合型。语句union data u;定义了一个联合型变量u,它有两个成员变量
整型成员u.i和双精度成员u.f,这两个成员共享存储单元,变量u它的内存状态如图所示。
5
联合型变量
由程序的输出可知,union data型变量u只有8个字节。变量u的成员变量u.i和u.f共享了存储单元。
可以使用整型变量u.i,如u.i = 9; u.i++;。也可以使用double型变量u.f,如u.f = 0.9;。但不能同时使用这两个变量,
如有u.i = 9; u.f = 0.9;,则u.i的值不再是9。
由程序的输出可知,union data型变量u只有8个字节。变量u的成员变量u.i和u.f共享了存储单元。
可以使用整型变量u.i,如u.i = 9; u.i++;。也可以使用double型变量u.f,如u.f = 0.9;。但不能同时使用这两个变量,
如有u.i = 9; u.f = 0.9;,则u.i的值不再是9。
6
例10-6联合型的使用
定义一个联合型变量u,则只用8个字节就可以得到整型u.i和double型u.f两个变量,
但这两个变量不能同时使用。
7
枚举型
这节课我们讨论枚举型。
8
10.3 枚举型
生活中,有些数据的取值范围是固定的,如月份的取值从一月到十二月。编程时常用整数表示这些取值范围固定的数据,如用1表示一月,用2表示二月等。
用整数表示此类数据既不直观,又容易出错,如整型变量month用于存储月份,语句month = 15;在语法上没有问题,可实际上程序中已经出现了逻辑错误。
生活中,有些数据的取值范围是固定的,如月份的取值从一月到十二月。
编程时常用整数表示这些取值范围固定的数据,如用1表示一月,用2表示二月等。
用整数表示此类数据既不直观,又容易出错,如整型变量month用于存储月份,
语句month = 15;在语法上没有问题,可实际上程序中已经出现了逻辑错误。
9
枚举型
枚举型是用户自定义类型,定义时列举出此类数据所有可能的取值,定义后就可以用它定义枚举型变量。枚举型变量的取值仅限于定义枚举型时列举出的值。
用关键字enum定义枚举型,定义枚举型的一般形式为:
enum 枚举型名 {枚举常量列表};
enum color {BLACK, BLUE, RED, GREEN};就定义了一个枚举型enum color,大括号中的BLACK等是枚举常量。
枚举型
枚举型变量
enum color {BLACK, BLUE, RED, GREEN};
enum color col1, col2;
先定义了一个枚举型enum color,然后定义也enum color型变量col1和col2
枚举型变量col1和col2,只能用enum color型定义时规定的枚举型常量(BLACK, BLUE, RED, GREEN)赋值。
如col1 = BLUE; col2 = GREEN;。
enum color {BLACK, BLUE, RED, GREEN};
enum color col1, col2;
先定义了一个枚举型enum color,然后定义也enum color型变量col1和col2
枚举型变量col1和col2,只能用enum color型定义时规定的枚举型常量(BLACK, BLUE, RED, GREEN)赋值。
如col1 = BLUE; col2 = GREEN;。
11
枚举常量
枚举常量对应于一个整数值,第一个枚举常量默认值为0,其它枚举常量的值为前一个枚举常量的值加1。 enum color {BLACK, BLUE, RED, GREEN};中,BLACK, BLUE, RED, G