第10章共用体与枚举.ppt
《第10章共用体与枚举.ppt》由会员分享,可在线阅读,更多相关《第10章共用体与枚举.ppt(24页珍藏版)》请在三一文库上搜索。
1、1,第10章 共用体与枚举,C语言程序设计,华北电力大学计算机科学系 C语言课程组,2,学习目标,理解共用体概念以及在编程中的作用 掌握结构体类型和共用体类型的差别 理解枚举概念以及在编程中的作用 掌握使用typedef定义新类型的方法及作用,3,10.1共用体,10.1.1 共用体概念 【例】教师和学生填表问题,职业: “教师”或“学生” 单位: 学生 班级编号 整型量表示 教师 某系某教研室 字符数组类型表示 问题:如何把这两种类型不同的数据都填入“单位”这个变量中呢? 语言提供了一种称为共用体(联合)的类型。,4,如要求“班级”和“教研室”这两种类型不同的数据都填入“单位”这个变量中,
2、就必须把“单位”定义为包含整型和字符型数组这两种类型的“共用体”,如下: union perdata int class; char office10; ;,5,1、共用体类型定义 union 共用体名 类型说明符 成员名1; 类型说明符 成员名2; . 类型说明符 成员名n; ;,关键字,6,第2种: union perdata int class; char office10; a,b;,第3种 union int class; char office10; a,b,7,2、共用体变量的声明,以perdata类型为例,声明如下: 第1种 union perdata int class; c
3、har officae10; ; union perdata a,b; /*声明a,b为perdata类型*/,8,说明,共用体变量和结构体变量含义不同: 结构体变量所占内存长度是各成员的内存长度之和 共用体变量所占内存长度是最长成员的长度。 如perdata类型的变量a和b都为10个字节,即office数组的长度。a,b变量如赋整型数据时,只使用了2个字节,而赋字符数组时,可用10个字节。,9,3、共用体的引用 先定义共用体变量后才可以引用它。不能引用共用体变量本身,只能引用其中的成员。 例如:printf(d,a);是错误的 printf(d,aclass);是正确的,10,4共用体类型特
4、点 (1)同一内存段可放几种不同类型的成员,但每一瞬间只能存放一种。 例: union data int i; char ch; float f; a,b,c; ai1; ac=a; af2.1; printf(f,af);是可以的。 printf(c,ac);无效,11,(2)共用体变量地址及其各成员地址都是同一地址。即&a,&ai,&ac,&af值相同。 (3)不能对共用体变量名赋值。也不能定义时进行初始化。 (4)不能把共用体变量作为函数参数,也不能使函数返回共同体变量,但可以使用指向共用体的指针。 (5)允许定义共用体数组。,12,10.1.2 人员管理,【例10-1】 设有一个教师与
5、学生通用的表格,教师数据有姓名,年龄,职业,教研室四项。学生有姓名,年龄,职业,班级四项。编程输入人员数据, 再以表格输出。,#include #include struct person char name10; int age; char job10; union int mclass; char office20; depa; ,13,void main() struct person body2; int n,i; for(i=0;i2;i+) printf(“input name,age,job and departmentn“); scanf(“%s%d%s“,bodyi.name
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 共用 枚举
链接地址:https://www.31doc.com/p-3418057.html