第11章共用体和枚举(1学时).ppt

上传人:本田雅阁 文档编号:3419147 上传时间:2019-08-23 格式:PPT 页数:22 大小:508.04KB
返回 下载 相关 举报
第11章共用体和枚举(1学时).ppt_第1页
第1页 / 共22页
第11章共用体和枚举(1学时).ppt_第2页
第2页 / 共22页
第11章共用体和枚举(1学时).ppt_第3页
第3页 / 共22页
第11章共用体和枚举(1学时).ppt_第4页
第4页 / 共22页
第11章共用体和枚举(1学时).ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《第11章共用体和枚举(1学时).ppt》由会员分享,可在线阅读,更多相关《第11章共用体和枚举(1学时).ppt(22页珍藏版)》请在三一文库上搜索。

1、计算机程序设计,第十一章 结构体、共用体、枚举,之,信息科学与工程学院计算机系 赵秀岩,温故,结构体,结构体类型的定义,结构体变量的定义,结构体变量的存储,结构体变量的初始化,结构体变量的引用,结构体数组,结构体指针,结构体应用举例,struct student int num; char class10; char name20; char sex; int age; int score; ;,struct student int num; char class10; char name20; char sex; int age; int score; ; struct student st

2、udent1,student2;,struct student int num; char class10; char name20; char sex; int age; int score; ; struct student student1=10001,”jizi041”,”zhangyu”,M,20,98;,本节内容,共用体,枚举,问题的提出,共用体,思考: 用什么数据类型来存储上述表格? “年级/职称”列数据类型特点?,共用体,共用体的概念,需要:把不同类型的变量存放到同一段内存单元; 目的:节约内存或对同一段内存单元的数据按不同类型处理; 则:需要构造“共用体”数据结构类型,共用体

3、也称为“联合(体)”,共用体类型的定义,union 共用体类型名 数据类型 成员1; 数据类型 成员2; 数据类型 成员3; 数据类型 成员4; ;,union data int i; float f; char ch; ;,共用体定义的一般形式,共用体定义举例,共用体类型变量的定义,union data int i; float f; char ch; ; union data d1;,union data int i; float f; char ch; d1;,union int i; float f; char ch; d1;,共用体数据的存储,“共用体”:各成员占相同的起始地址,所占

4、内存长度等于最长的成员所占内存。可以用Sizeof来测量。,提示:此处与结构体变量的存储比较记忆!,共用体变量的引用,只能引用共用体变量的成员,如、 union data int i; float f; char ch; ; union data a;,a.i; a.ch; a.f;,共用体变量的引用,union data int i; float f; char ch; main() union data a; a.i=3; a.f=3.14; a.ch=a; printf(“%d,%f,%c“,a.i,a.f,a.ch); ,union1.c,共用体变量中的值是最后一次存放的成员的值;,共

5、用体类型数据的特点,共用体变量不能整体初始化,因为共用体类型的变量中的成员每一时刻只能有一个有效,故同时赋值无意义;,union data int i; char ch; float f; a=1,a, 1.5;,共用体应用举例,编程建立一个教师学生登记表,其中包括编号、姓名身份(student、student)、职称。如果身份是“student”,职称为年级(1、2、3),如果身份是“teacher”,职称为职称(讲师、教授等)。(5条记录)。,实例剖析,表格用哪种数据类型表示?,“职称”字段有几种数据类型?如何表示?,表格中的5条记录如何表示?,结构体,结构体数组,共用体,结构体、共用体的

6、构造,struct person int num; char name20; char job10; union int grade; char position10; level; ,主函数代码,main() int i; struct person person5; for(i=0;i5;i+)scanf(“%d%s%s“, ,问题的提出,枚举类型,生日:1,2,3,4,531,星期: sun, mon, tue, wed, thu, fri, sat,枚举:,将变量可能的值一一列举出来。变量的值只能取列举出来的值之一。,枚举类型定义,enum weekday sun, mon, tue,

7、 wed, thu, fri, sat;,说明:,enum:枚举类型定义的关键字; weekday:枚举类型名; 枚举元素:sun, mon, tue, wed, thu, fri, sat,枚举元素,枚举元素是常量:,在编译器中,按定义的顺序取值0、1、2、.。,枚举元素是常量,因此不能赋值:,枚举值可以作判断:,枚举元素的值也可以在定义时指定:,例: if (weekday = mon) if (weekday sun) ,如:sun = 0; mon = 1;,enum weekday sun7, mon1, tue, wed, thu, fri, sat;,其他枚举元素的值顺序存取:t

8、ue是2,wed是3,依次类推,枚举类型应用举例,婚礼上的谎言,三对情侣举办集体婚礼,三个新郎为zhang,wang,li,三个新娘是ding,cao,meng。有人想知道谁和谁结婚,于是就问新人中的三位,得到如下回答:zhang说他和ding结婚,ding说她的未婚夫是li,li说他和meng结婚。事后知道他们说的都是假话。那究竟谁和谁结婚?,新郎取值:zhang,wang,li,新娘取值:ding,cao,meng,算法分析,定义一个枚举类型,enum brideding1,cao,meng;,定义三个枚举类型变量,enum bride zhang,wang,li;,确定关系,若张与丁结婚,表示成zhangding;,有如下已知条件:,Zhang != ding; Li != ding; li!=meng; zhang!=wang&wang!=li&li!=zhang,程序代码,结束,Thank you very much!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1