第10章 结构体与联合体数据类型.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 结构体与联合体数据类型

联合体数据类型的基本概念 联合体类型的定义和变量的引用方法 联合体类型变量的定义 先定义联合体类型,然后定义联合体变量 union 标识符 { 成员列表;}; union 标识符 变量列表; 定义联合体类型的同时定义联合体类型变量 union 标识符 { 成员列表;}变量列表 不定义类型名直接定义联合体类型变量 union { 成员列表;}变量列表 union test { int a; long b; }key; 定义了一个联合体类型union test和一个该类型的联合体类型变量key,16位系统中该类型所占的存储单元长度为4个字节,由变量key的两个成员分量分时复用(共享)。 联合体数据类型的基本概念 联合体类型的定义和变量的引用方法 联合体变量的引用 联合体变量不能直接用于操作处理,也只能通过操作它的成员达到操作它的目的。引用联合体类型变量的成员项的形式如下: 联合体类型变量名.成员名; ★特别提示:一个联合体类型变量不是同时存放多个成员的值,而只能存放一个成员项的值,这个值就是该联合体变量最后一次赋值后所具有的内容。 联合体类型指针变量 可以定义指向联合体变量的指针,进而通过指针使用联合体变量,定义形式和使用形式均与结构体类似。 联合体数据类型的基本概念 联合体类型的定义和变量的引用方法 联合体类型变量和指针变量的使用示例 例10-13 联合体(共用体)类型变量作为函数参数。 例10-14 用指向联合体(共用体)类型变量的指针作为函数的参数。 例10-12 在人事数据管理中,对“职级”数据项处理方式如下:如类别是工人则登记其“工资级别”;如类别是技术人员则登记其“职称”。 联合体数据类型的基本概念 联合体类型与结构体类型的区别 联合体类型和结构体类型无论在定义上还是在使用上都有许多相似的地方,但这两种数据类型是完全不同的数据构造形式,其使用的范畴也有区别。 结构体主要使用在需要将不同数据类型对象用类似数组方式集合起来表示复杂数据对象的场合; 而联合体主要用于不同数据对象在不同时段分时占用同一存储区域的应用场合。 联合体数据类型的基本概念 联合体类型与结构体类型的区别 变量占据的存储区域长度不同 一个结构体类型变量中的所有成员分量同时存在,所以在使用该结构体类型变量时系统会为该变量的每一个成员分量同时分配存储空间。 一个联合体类型变量的所有成员分量不会同时存在,联合体类型变量在被使用时系统按照变量所有成员分量中需要存储区域最大的一个分配存储空间。 例10-15 结构体类型变量与联合体类型变量空间需要比较示例。 联合体数据类型的基本概念 联合体类型与结构体类型的区别 赋值后所呈现的状态不同 对于结构体类型变量,由于其每一个成员分量占用的是不同的存储空间,所以对其某一个成员分量的赋值与其它的成员分量没有任何关系。 对于联合体类型变量,所有成员分量是分时复用一段存储区域的关系,所以对其一个成员分量的赋值会影响到其它成员分量。 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 例10-16 结构体类型变量与联合体类型变量赋值比较示例 联合体数据类型的基本概念 联合体类型与结构体类型的区别 联合体可用于数据拆分的应用场合 联合体数据类型在C程序设计中常常用于将数据进行拆分的场合,这种应用问题往往需要将按某种形式(或数据类型)接收的数据拆分为另外形式或类型的数据。这种需要数据拆分的应用问题使用C语言中提供的联合体类型就非常适合,在C程序设计中将问题涉及到的两种数据类型组合在联合体类型中,然后使用该联合体的变量就可以处理这类问题。 例10-17 利用联合体数据类型实现文本的转换。 结构体和联合体数据类型 结构体数据类型的基本概念 结构体数组 结构体数据类型与指针的关系 联合体数据类型的基本概念 结构体数据类型的基本概念 结构体数据类型的主要特点 问题的提出 在实际的计算机应用问题中特别是在事务处理中,常常需要将不同的数据组合成为一个有机的整体,形成一种能够既表示出各个数据又表示出这些数据之间关系的构造数据类型。 解决办法

文档评论(0)

3471161553 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档