- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计第29课:共用体与枚举类型主讲:闫爱平主要内容1共用体2枚举类型3用 typedef命名已有类型共用体与结构体的区别重点难点1、共用体类型 共用体也是一种构造类型,将不同类型的数据组合在一起。但与结构体不同,在共用体内的不同成员占用同一段存储区,成员之间互相覆盖,即在同一时刻,只有一个成员起作用。1、 共用体类型共用体类型的声明及变量的定义 共用体类型的声明与结构体的声明完全相同,只是关键字为union。例如: 共用体类型的声明格式:union 共用体名 { 数据类型 成员名1 ; 数据类型 成员名2 ; ... ... 数据类型 成员名n ; } ;union data { int i ; char ch ; float f ; } ;1、共用体类型共用体变量的定义方式与结构体变量的定义方式相似,也有 3 种方式:(1) 类型声明与变量定义分开。例如: union data{ int i ; char ch ; float f ; } ; union data d1, d2 ;1、 共用体类型共用体变量的定义方式与结构体变量的定义方式相似,也有 3 种方式:(2) 在声明类型的同时定义变量。例如: union data { int i ; char ch ; float f ; } d1, d2 ; 1、 共用体类型共用体变量的定义方式与结构体变量的定义方式相似,也有 3 种方式:(3) 直接定义共用体类型的变量,不给出共用体名。例如: union { int i ; char ch ; float f ; } d1, d2 ;为共用体变量分配空间的大小是以所有成员中占用空间字节数最多的成员为标准。1、 共用体类型(1) 共用体变量的初始化。 对于共用体变量,在定义的同时,可以初始化,但初始化只能对第一个成员初始化。例如: union data d1 = { 10 } ;(2) 共用体变量中成员的引用。 与结构体变量成员引用的方式相同,也使用“﹣”和“. ”两种运算符来实现:例如: 共用体变量名.成员名 共用体指针﹣成员名 union data d1, *pd ; pd = d1 ; 对 d1成员的引用可以是: “d1.i”或“pd﹣i” 、 “d1.ch”或“pd﹣ch” 、 “d1.f”或“pd﹣f” 。 同类型的共用体变量之间可以互相赋值。1、 共用体类型例 1:分析下面程序运行结果。#include stdio.h union data { int i ; char ch ; float f ; } ; struct data2 { int i ; char ch ; float f ; } ; int main ( ) { union data ud ; struct data2 sd ; ud.i=10;ud.ch=A;ud.f=20; sd.i=10;sd.ch=A;sd.f=20; printf( size of ud: %d, size of sd: %d\n ,sizeof ud,sizeof sd); printf(ud.i: %d, ud.ch: %c, ud.f: %f\n ,ud.i,ud.ch,ud.f); printf(sd.i: %d, sd.ch: %c, sd.f: %f\n ,sd.i,sd.ch,sd.f); return 0;} 1、 共用体类型运行结果: size of ud: 4, size of sd: 7 ud.i: 1101004800, ud.ch:,ud.f: 20.000000 sd.i: 10, sd.ch: A, sd.f: 20.000000程序分析: 从上面的运行结果可看出,对共用体变量成员的赋值,保存的是最后的赋值,前面对其他成员的赋值均被覆盖。由于结构体变量的每个成员拥有不同的内存单元,因而不会出现这种情况。1、 共用体类型共用体与结构体比较 (1)结构体类型是一种复杂而灵活的构造数据类型,它可以将多个相互关联但类型不同的数据项作为一个整体进行处理。定义结构体变量时,每一个成员都要分配空间存放各自的数据。 共用体是另一种构造数据类型,定义共用体变量时,只按占用空间最大的成员来分配空间,在同一时刻只能存放一个成员的值。1、共用体类型共用体与结构体比较(2) 共用体变量的定义形式与结构体变量的定义形式类似,都有三种形式,只是关键字不同。(3) 结构体变量通过初值列表实现对变量中的成员初始化。共用体变量只能对第一个成员初始化。(4) 共用体成员的访问方式与结构体相同,成员的访问通过运算符“.”和“-
您可能关注的文档
最近下载
- 快手初级认证内部考试题 .pdf VIP
- 电网技术改造工程预算编制与计算规定(2020年版).pdf VIP
- 防止沉迷网络游戏主题班会PPT课件.pptx VIP
- 发展和改革委员会理论学习中心组集体学习暨2025年度民主生活会会前学习研讨会上的讲话范文.docx VIP
- 新华三集团数字化转型实践.pptx
- 2022年宜宾学院计算机科学与技术专业《数据结构与算法》科目期末试卷.pdf VIP
- 医疗卫生机构护士聘用证明.docx VIP
- 2025年消防设施操作员(消防设备基础知识)通关必刷题库(1000题)含答案 .pdf VIP
- 综合性期刊集群的建设与服务能力提升策略.docx VIP
- 中国期刊集群建设与融合发展的路径研究综述.docx VIP
原创力文档


文档评论(0)