
知识回顾1.复杂结构2.结构数组3.结构与函数
知 识 回 顾 1.复杂结构 2.结构数组 3.结构与函数

主要内容BB联合9.8>枚举小结自的要求复习思考题上机与编程实践独立作业
主 要 内 容 9.7 联合 9.8 枚举 目的要求 复习思考题 上机与编程实践 独立作业 小 结

9.7 联合1.联合概述(1)联合是类似于结构的数据类型(2)联合的声明、变量定义、成员访问与结构完全类似typedefunionnum116706short num,char chAry[2];chAry[1]chAry[0]1 SH_CH2;BASH_CH2data=16706;图9-20联合声明、定义变量和初始化
9.7 联合 1.联合概述 (1)联合是类似于结构的数据类型 (2)联合的声明、变量定义、成员访问与结构完全类似 图9-20 联合声明、定义变量和初始化 typedef union { short num; char chAry[2]; } SH_CH2; SH_CH2 data = 16706; 16706 A num B chAry[1] chAry[0]

下面的操作也是合法的:/*定义了SHCH2型的联合指针P并指向了data*/SH CH2*p=&data,/*通过指针访问联合成员num*/p->nump->chAry[o]/*通过指针访问联合成员chAry[o]*现场编程
现场编程

2.几点说明(1)联合采用了覆盖技术准许不同类型数据可以相互覆盖(2)联合变量与联合中最大成员所占空间大小相同(3)采用联合的自的是为了节省内存(4)采用联合的目的是为了节省内存(5)只可对某个成员赋值,不能对联合变量整体赋值如:“”“B”:*错误的初始化方法*SH_CH2data=[100./*正确的初始化方法*/data.num=100;
(5)只可对某个成员赋值, 不能对联合变量整体赋值 (2)联合变量与联合中最大成员所占空间大小相同 (1)联合采用了覆盖技术准许不同类型数据可以相互覆盖 (3)采用联合的目的是为了节省内存 2.几点说明 (4)采用联合的目的是为了节省内存

(6)结构与联合可以相互嵌套声明联合与结构/*联合与结构的嵌套*/unionuareaunion usintival;intival;float fval;struct st stval;char*pval;longlval;structststruetsushrt'sval;charc,long Ival;unionuarea uval;char eval:double dval影图9-20联合与结构的嵌套
(6)结构与联合可以相互嵌套 图9-20 联合与结构的嵌套

3.联合应用实例(自学)程序9-131联合应用,建立一种既可以录入公司名又可以录入人名的通信演,1*Demonstrateuseofunionsinstructures2Written by.3Date:4*/5#include78*GlobalDeclarations*9typedef struct10111charfirst[20];12charinit;13charlast[30];14I PERSON;
3.联合应用实例(自学)

9.8枚举1.枚举概述(1)枚举类型用关键字enum声明(2)枚举类型声明是明确了该类型变量的取值范围enmu枚举名枚举常量1,枚举常量2,枚举常量nl;如:enumflag(false,truel;
9.8 枚举 1.枚举概述 (2)枚举类型声明是明确了该类型变量的取值范围 (1)枚举类型用关键字enum声明

2.几点说明(1)枚举类型是由整型数据构建而成的类型(2)枚举类型用符号代替具体的数字(3)系统把每个枚举常量看作整数:0,1,2若有以下语句:enum flag (false,truel errFlag;则false的值是0,true的值是1。若有下列语句:enum weekday[sun, mon,tue, wed, thu, fri, satl;则0中自左向右每个常量代表的值分别是0,1,2,3,45,6
2.几点说明 (1)枚举类型是由整型数据构建而成的类型 (2)枚举类型用符号代替具体的数字 (3)系统把每个枚举常量看作整数:0,1,2

(4)又可以人为指定常量的值若有下列语句:enum weekdayisun =7,mon =1,tue,wed,thu, fri, satl;则中每个常量代表的值分别是7,1,2,3,4,5,6。需要注意的是:使用此方法为个别量指定值时,未指定的量系统会自动根据其前面量的值和位置推算。如:enun weekdayisun = 2, mon , tue, wed, thu, fri, satl;则0中每个常量代表的值分别是2,3,4,5,6,7,8
(4)又可以人为指定常量的值