第六章共用体和枚举类型.ppt

上传人:sccc 文档编号:5995409 上传时间:2023-09-12 格式:PPT 页数:16 大小:181.54KB
返回 下载 相关 举报
第六章共用体和枚举类型.ppt_第1页
第1页 / 共16页
第六章共用体和枚举类型.ppt_第2页
第2页 / 共16页
第六章共用体和枚举类型.ppt_第3页
第3页 / 共16页
第六章共用体和枚举类型.ppt_第4页
第4页 / 共16页
第六章共用体和枚举类型.ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《第六章共用体和枚举类型.ppt》由会员分享,可在线阅读,更多相关《第六章共用体和枚举类型.ppt(16页珍藏版)》请在三一办公上搜索。

1、一、共用体的概念在C语言中,允许不同数据类型使用同一存储区域,共用体就是一种同一存储区域由不同类型变量共享的数据类型。例、把一个整型变量、一个字符型变量、一个实型变量放在同一个地址开始的内存单元中。共用体的定义形式:union 共用体名成员列表;变量列表;,6.4 共用体,union dataint i;char ch;float f;x;,共用体与结构体有何不一样?,struct dataint i;char ch;float f;,注意区分:“共用体”:各成员占相同的起始地址,所占内存长度等于最长的成员所占内存。“结构体”:各成员占不同的地址,所占内存长度等于全部成员所占内存之和。,x,x

2、,二、共用体变量的引用只能引用共用体变量的成员,如:union data a;a.i;a.ch;a.f;,注意:共用体中的多个成员在某一时刻只有一个成员起作用!1,三、共用体类型数据的特点、共用体变量中的值是最后一次存放的成员的值,如:a.i=1;a.ch=a;a.f=1.5;完成以上三个赋值语句后,共用体变量的值是1.5,而a.i=1和a.ch=a已无意义。、共用体变量不能初始化,例:union data int i;char ch;float f;a=1,a,1.5;,例 设有若干个人员的数据,其中有学生和教师。学生数据包括:姓名、号码、性别、职业、班级。教师数据包括:姓名、号码、性别、职

3、业、职务。如图:要求输入人员数据,然后输出。分析:学生数据的class(班级)和教师数据的position(职务)类型不同,但在同一表格中,使用“共用体”数据 结构。,struct int num;char name10;char sex;char job;unionint class;/*班级*/char position10;/*职务*/category;,例6.6:定义存储某单位职工信息所需数据类型,每名职工信息包括职工号、姓名、性别、年龄、车间号(工人)/职务(干部)。,struct employee long num;char name20;char sex;int age;?cat

4、egory;,struct employee long num;char name20;char sex;int age;union int workshop;char position10;category;,例6.5 将一个整数按字节输出void main()union int_char int i;char ch2;x;x.i=24897;printf(i=%dni=%on,x.i,x.i);printf(ch0=%o,ch1=%on ch0=%c,ch1=%cn,x.ch0,x.ch1,x.ch0,x.ch1);,6.5 枚举类型如果一个变量只有几种可能的值,可以定义为枚举类型。“枚举

5、”:将变量可能的值一一列举出来。变量的值只能取列举出来的值之一。枚举类型定义格式:enum 类型名 枚举元素1,枚举元素2,例:enum weekday sun,mon,tue,wed,thu,fri,sat;,枚举类型变量的说明:enum 枚举类型名 变量列表;如:enum weekday workday,week_end;定义了两个枚举变量:workday,week_end,它们只能取sun到sat之一,如、workday=mon;week_end=sun;sun、mon、.、sat称为“枚举元素”或“枚举常量”。,说明:1、枚举元素是常量。在编译器中,按定义的顺序取值0、1、2、.。例:

6、workday=mon;printf(%d,weekday);输出整数1。2、枚举元素是常量,不是变量,因此不能赋值。sun=0;mon=1;但在定义枚举类型时,可以指定枚举常量的值,如:enum weekday sun=7,mon=1,tue,wed,thu,fri,sat;此时,tue、wed、.的值从mon的值顺序加1。如,tue=2。3、枚举值可以作判断,例、if(workday=mon).if(workday sun).4、整型与枚举类型是不同的数据类型,不能直接赋值,如:workday=2;但可以通过强制类型转换赋值,如:workday=(enum weekday)2;,6.6 用

7、typedef定义类型一、概念关键字typedef用于定义一种新的数据类型,它代表已有数据类型,是已有数据类型的别名。例、typedef int INTEGER;typedef float REAL;定义新数据类型INTEGER,它代表已有数据类型int。定义新数据类型REAL,它代表已有数据类型float。通过上述定义后,以下两行等价:int i,j;float a,b;INTEGER i,j;REALa,b;,二、典型用法:1、定义一种新数据类型,专用于某种类型的变量,使程序更清晰明了。例1:typedef int COUNT 定义COUNT数据类型,专用于计数。COUNT i,j;2、简

8、化数据类型的书写。例2:typedef struct date int month;int day;int year;DATE;DATE birthday;例3:typdef union category CATE;,三、typedef 与#define的区别typedef int COUNT;#define COUNT inttypedef定义一种新的数据类型(COUNT),它是已有类型(int)的别名。在编译时COUNT类型与int类型相同。#define定义一个宏(COUNT),在预编译时,把字符串COUNT替换为字符串int。,第七次上机作业,实验名称:结构体和共用体的使用实验目的:掌握结构体、公用体类型的定义及变量说明的方法,学会对两种类型数据的正确引用方法和简单应用。实验内容:必做 p208习题6.9,6.11 选做 p208习题6.10,6.13,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号