网站大量收购独家精品文档,联系QQ:2885784924

第11章共用体、枚举和位运算.pptVIP

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章共用体、枚举和位运算

C语言程序设计 第11章 共用体、枚举和位运算 第11章 共用体、枚举和位运算 主要内容 11.1 共用体 11.2 枚举 11.3 位运算 11.1 共用体 11.1.1 共用体概述 11.1.2 共用体类型定义 11.1.3 共用体变量的定义 11.1.4 共用体变量的引用 11.1.5 共用体数据特点 11.1.1 共用体概述 共用体是有别于以前任何一种数据类型的特殊数据类型,它是多个成员的一个组合体,但与结构体不同,共用体的成员被分配在同一段内存空间中,它们的开始地址相同,使得同一段内存由不同的变量共享。共同使用这段内存的变量既可以具有相同的数据类型,也可以具有不同的数据类型。 11.1.2 共用体类型定义 共用体类型定义的一般形式 union 共用体名 { 数据类型 成员名1; 数据类型 成员名2; …… 数据类型 成员名n; }; 11.1.2 共用体类型定义 例如,以下用法定义了数据类型名为union data的共用体数据类型: union data { int i; char ch; float f; }; 在这里定义的union data共用体类型有3个成员:i、ch、f,它们的数据类型分别是int、char、float。 11.1.3共用体变量的定义 1.共用体类型与共用体变量同时定义 union data { int i; char ch; float f; }u1,u2,u3; 2.先定义共用体类型,再定义共用体变量 union data u4,u5; 3.直接定义共用体变量 union { int i; char ch; float f; }u6,u7,u8; 11.1.3共用体变量的定义 共用体与结构体的区别: ⑴ 结构体说明的是一个组合型的数据,多个不同的数据项可以作为一个数据整体对待;而共用体说明的是内存的一种共享机制,多个不同的变量可以使用同一段内存空间。 ⑵ 结构体中各成员有不同的地址,所占内存长度等于全部成员所占内存之和;而共用体各成员有相同的地址,所占内存长度等于最长的成员所占内存。 11.1.4共用体变量的引用 共用体是对多个变量共享同一段内存的定义,因此单独使用共用体变量时没有任何意义,只能通过引用共用体的成员来使用共用体变量。 例如: 使用u5.i形式引用共用变量u5的成员i; 使用u5.ch形式引用共用变量u5的成员ch; 使用u5.f形式引用共用变量u5的成员f。 下面是在程序中使用共用体变量的语句: u1.i=20; scanf(%d,u2.i); printf(%d\n,u1.i+u2.i); 11.1.5 共用体数据特点 共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用,即:共用体变量中的值是最后一次存放的成员的值。例如,对以下赋值语句,当依次执行之后,只有第三个赋值语句起作用: u2.i = 1; u2.ch = a; u2.f = 1.5; 若此时使用成员i或者ch的值则无任何意义。 与结构体变量不同,共用体变量不能初始化,下面的用法是完全错误的。 union data { int i; char ch; float f; }a={1,a, 1.5}; 共用体变量的地址和它的各成员的地址都是同一个地址值,如u1、u.i、u.ch、u.f是相同的。 11.1.5 共用体数据特点 例11-1 分析以下程序的执行结果。 #include stdio.h union { long i; int k; char m; char s[4]; }part; 11.2 枚举 11.2.1 枚举概述 11.2.2 枚举类型及枚举变量 11.2.3 枚举应用 11.2.1 枚举概述 我们在编写程序时,经常遇到变量取值能够列举的情况,例如,表示星期的变量取值有星期一到星期天7个值,表示月份的变量取值有一月到十二月12个值,表示三原色的变量取值有红、黄、蓝3个值等。为了更好地处理这一类变量,ANSI C新标准增加了枚举数据类型,它把变量允许的取值明确列举了出来,使程序更直观,处理更有效。与结构体、共用体一样,枚举也不是一种固定结构的数据类型,它可以根据具体的情况,使用enum关键字进行定义,当定义了一种枚举类型以后,就可以使用已经定义的枚举数据类型定义枚举变量。 11.2.2枚举类型及枚举变量 1.枚举类型的定义 定义形式 enum 枚举名 { 枚举值表}; 例如: enum weekday {Sun,Mon,Tue,Wed,Thu,Fir,Sat}; 2.枚举变量的定义 与共用体变量的定义方式类似,枚举类型变量的定义方式也有三种:通过已定义的

您可能关注的文档

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档