- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计重庆大学课件结构体类型和联合体类型
8.5.1 联合体类型的定义和变量引用 联合体(共用体)类型的定义 联合体类型的定义确定了参与共用存储区域的成员项以及成员项具有的数据类型。 联合体类型的定义形式: union 标识符 { 数据类型 成员项1; 数据类型 成员项2; … 数据类型 成员项n; }; 定义联合体变量的三种方式 先定义联合体类型,后定义联合体类型变量; union 联合体名 { 成员列表;}; union 联合体名 变量列表; 同时定义联合体类型和联合体类型变量; union 联合体名 { 成员列表;}变量列表; 直接定义联合体类型变量; union { 成员列表;}变量列表; 8.5.1 联合体类型的定义和变量引用 同时定义联合体类型和变量 union test { int a; long b; }key; 定义了一个联合体类型union test和该类型的联合体类型变量key, 32位系统中该类型所占的存储单元长度为8个字节,由变量key的两个成员分量分时复用(共享)。 8.5.1 联合体类型的定义和变量引用 联合体变量的引用 联合体变量不能直接用于操作处理,只能操作它的成员。引用联合体变量成员项形式如下: 联合体变量名.成员名; ★特别提示:一个联合体变量不是同时存放多个成员的值,而只能存放一个成员项的值,即联合体变量最后一次赋值后的内容。 联合体类型指针变量 可以定义指向联合体变量的指针。 例8-15 联合体变量引用示例 8.5.1 联合体类型的定义和变量引用 8.5.2 联合体类型与结构体类型的区别 变量的存储长度不同 结构体变量所占内存长度取决于所有成员分量占用的内存长度; 联合体变量所占内存长度取决于其占内存长度最长的成员分量; 赋值后所呈现的状态不同 对于结构体变量,其每一个成员分量占用不同的存储空间,对某一成员的赋值与其它成员无关。 对于联合体变量,所有成员分量共享同一段存储区域,对某一成员的赋值会影响到其它成员。 例8-17 结构体变量与联合体变量存储空间比较 例8-18 结构体变量与联合体变量的赋值比较 struct A { int x; char c[2]; }a; a.x=0x4142; a.c[0]=a; a.c[1]=b; union B { int x; char c[2]; }b; b.x=0x4142; b.c[0]=a; b.c[1]=b; a.x a.c[0] a.c[1] b.x b.c[0] b.c[1] 0x42 0x41 0x61/’a’ 0x62/’b’ 0x42 0x41 0x61 0x62 8.5.2 联合体类型与结构体类型的区别 16位系统中结构体变量a所占存储单元长度为4字节,联合体变量b所占存储单元长度为2字节。 使用联合体变量的注意点: 一个联合体变量不是同时存放多个成员的值,而是只能存放一个成员项的值,这个值就是该联合体变量最后被赋予的值。 在两个同类型的联合体变量之间可以使用变量名直接赋值。 联合体变量不能初始化,不能整体引用或赋值。 联合体的特点是地址共用。联合体中可以包含结构体成员,结构体中也可以包含联合体成员。 结构体包含联合体成员 例8-16 编程实现简单的人事数据管理 使用联合体变量的注意点 联合体应用举例 联合体包含结构体成员 综合读程序 程序设计技术 C语言数据描述和C程序设计初步 结构化程序设计基础和C语言的控制结构 数组及其应用 函数与C程序结构 指针与函数 指针与数组 字符串及其应用 结构体类型和联合体类型 C语言的文件处理及其应用 位运算与枚举类型 结构体类型和联合体类型 结构体数据类型的基本概念 结构体数组 结构体数据类型与指针的关系 联合体数据类型的基本概念 8.1 结构体类型的基本概念 结构体类型概述 计算机应用中特别是在事务处理中,常常需要将不同的数据组合成为一个有机的整体,这些数据不属于同种数据类型,但这些数据又相互关联,用以描述一个操作对象的各种属性。这种由一些属于不同数据类型的数据组合而成的构造数据类型称为结构体类型。例如,学生登记表。 结构体类型的特点 结构体类型由若干个数据项组成,其中每一个数据项称为一个结构体成员,它们都属于一种已经定义的数据元素。 系统并没有预先定义结构体类型,须由设计者事先构造。 要使用结构体类型数据,必须要先定义结构体类型,然后再定义此种类型的变量。 8.1.1 结构体类型和变量的定义 定义结构体类型的一般形式: struct 结构体名 { 数据类
您可能关注的文档
最近下载
- 江苏专转本2022年退役士兵考试真题.pdf VIP
- 2025年绍兴职业技术学院单招职业倾向性测试题库审定版.docx VIP
- 天津宁河县—玖龙纸业卫生纸项目环境影响评价报告书简本.pdf
- 借条(模板)完整版.docx
- 江苏专转本2022年退役士兵考试真题.pdf VIP
- GBT 29490-2023 企业知识产权合规管理体系手册+程序文件(格式可转换).pdf
- 2022新大象版科学五年级下册2.4《电从哪里来》教案教学设计.docx VIP
- 《智慧物流与供应链基础》课程标准.docx VIP
- 《广东省玻璃体腔注药操作及质量控制规范》.pdf
- 2025年杭州科技职业技术学院单招职业倾向性测试题库审定版.docx VIP
文档评论(0)