(中职)计算机编程基础(C语言)9.2ppt课件.ppt
-
资源ID:88394777
资源大小:125KB
全文页数:10页
- 资源格式: PPT
下载积分:10金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
(中职)计算机编程基础(C语言)9.2ppt课件.ppt
(中职)计算机编程基础(C语言)9.2ppt课件 9.2 共用体【任务目标】通过本任务的学习,理解如何定义和引用共用体,以及如何对共用体变量赋值和使用。【任务名称】利用共用体编程输入不同类型人员数据,再以表格输出。【任务内容】本任务设有一个教师与学生通用的表格,教师数据有姓名,年龄,职业,教研室四项。学生有姓名,年龄,职业,班级四项。编程输入人员数据,再以表格输出。【任务预备知识】“共用体”与“结构体”有一些相似之处。但两者有本质上的不同。在结构体中各成员有各自的内存空间,一个结构体变量的总长度是各成员长度之和。而在“共用体”中,各成员共享一段内存空间,一个共用体变量的长度等于各成员中最长的长度。应该说明的是,这里所谓的共享不是指把多个成员同时装入一个共用体变量内,而是指该共用体变量可被赋予任一成员值,但每次只能赋一种值,赋入新值则冲去旧值。【任务实施过程】1编辑程序(1)运行Win-TC,在程序编辑窗口输入程序。(2)以“921.c”为文件名保存文件。2.编译运行程序 程序运行结果如图9.2所示。2.编译运行程序 程序运行结果如图9.2所示。【任务知识】在进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存单元中。也就是使用覆盖技术,几个变量互相覆盖。这种几个不同的变量共同占用一段内存的结构,在C语言中,被称作“共用体”类型结构,简称共用体。图9.2 程序921.c运行结果 定义一个共用体类型的一般形式为:union共用体名 成员表;成员表中含有若干成员,成员的一般形式为:类型说明符 成员名 成员名的命名应符合标识符的规定。例如:union perdataint class;char office10;定义了一个名为perdata的共用体类型,它含有两个成员,一个为整型,成员名为class;另一个为字符数组,数组名为office。联合定义之后,即可进行共用体变量说明,被说明为perdata类型的变量,可以存放整型量class或存放字符数组office。共用体变量的说明共用体变量的说明和结构体变量的说明方式相同,也有三种形式。即先定义,再说明;定义同时说明和直接说明。以perdata类型为例,说明如下:union perdataint class;char officae10;union perdata a,b;/*说明a,b为perdata类型*/或者可同时说明为:union perdata int class;char office10;a,b;或直接说明为:unionint class;char office10;a,b 经说明后的a,b变量均为perdata类型。它们的内存分配示意图如图78所示。a,b变量的长度应等于 perdata 的成员中最长的长度,即等于office数组的长度,共10个字节。从图中可见,a,b变量如赋予整型值时,只使用了2个字节,而赋予字符数组时,可用10个字节。共用体变量的赋值和使用 对共用体变量的赋值,使用都只能是对变量的成员进行。共用体变量的成员表示为:共用体变量名.成员名例如,a被说明为perdata类型的变量之后,可使用 a.classa.office 不允许只用共用体变量名作赋值或其它操作。也不允许对共用体变量作初始化赋值,赋值只能在程序中进行。还要再强调说明的是,一个共用体变量,每次只能赋予一个成员值。换句话说,一个共用体变量的值就是共用体变量的某一个成员值。在用scanf语句输入时要注意,凡为数组类型的成员,无论是结构体成员还是共用体成员,在该项前不能再加&运算符。共用体类型数据的特点:1.同一个内存段可以用来存放几种不同类型的成员,但是在每一瞬间只能存放其中的一种,而不是同时存放几种。换句话说,每一瞬间只有一个成员起作用,其他的成员不起作用,即不是同时都在存在和起作用。2.共用体变量中起作用的成员是最后一次存放的成员,在存入一个新成员后,原有成员就失去作用。3.共用体变量的地址和它的各成员的地址都是同一地址。4.不能对共用体变量名赋值,也不能企图引用变量名来得到一个值,并且,不能在定义共用体变量时对它进行初始化。5.不能把共用体变量作为函数参数,也不能是函数带回共用体变量,但可以使用指向共用体变量的指针。6.共用体类型可以出现在结构体类型的定义中,也可以定义共用体数组。反之,结构体也可以出现在共用体类型的定义中,数组也可以作为共用体的成员。【任务小结】本任务中的程序用一个结构体数组body来存放人员数据,该结构体共有四个成员。其中成员项depa是一个共用体类型,这个共用体又由两个成员组成,一个为整型量class,一个为字符数组office。在程序的第一个for语句中,输入人员的各项数据,先输入结构体的前三个成员name,age和job,然后判别job成员项,如为s则对共用体depaclass输入(对学生赋班级编号)否则对depaoffice输入(对教师赋教研组名)。