- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言共用体与的枚举
C语言程序设计教程 第12章 共用体与枚举类型 12.1 共用体类型与共用体变量 12.2 共用体变量的引用 12.3 共用体变量的应用 12.4 位运算与位段结构 12.5 枚举类型 12.6 类型定义 第十二章 共用体与枚举类型 * C语言程序设计教程 * 12.1 共用体类型与共用体变量 共用体是由用户定义的数据类型。 有时需要使几种不同类别的变量存放到同一段内存单元中,也就是使用覆盖技术,几个变量互相覆盖。这种使几个不同的变量共同占用一段内存单元的结构,称为“共用体”类型的结构。 1. 共用体类型定义的一般形式 共用体类型定义用关键字union标识, 形式为: union 标识符 { 成员说明列表 }; * C语言程序设计教程 * ? 标识符给出共用体名, 是共用体类型名的主体, 定义的共用体类型由“union 标识符”标识。 2.共用体变量的定义 (1) 先定义共用体类型, 再定义共用体变量: union 共用体名 { 成员表 }; union 共用体名 变量表; union data { int i; char ch; float f; }; union data a,b,c; * C语言程序设计教程 * (2) 定义共用体类型的同时定义共用体变量 union 共用体名 { 成员表 } 变量表; union data { int i; char ch; float f; }a,b,c; (3)定义共用体类型时,省略共用体类型名,同时定义共用体类型变量 union { 成员表 } 变量表; union { int i; char ch; float f; }a,b,c; * 注意区分: “共用体”变量:各成员占相同的起始地址,在内存中所占字节数度等于最长的成员在内存中所占的字节数。 “结构体”变量:各成员占不同的地址,在内存中所占字节数等于全部成员在内存中所占的字节数之和。 union { int i; char ch; float f; } b; struct { int i; char ch; float f; }a; * C语言程序设计教程 * 12.2 共用体变量的引用 共用体变量不能直接使用,和结构体变量一样只能使用里面的某个成员,其成员同样通过点运算描述。形式为: 共用体变量名.成员名 union { int i; char ch; float f; }a; 例如:左边定义的共用体类型变量a ,a占有4个字节的空间,a.i 表示其整型成员,a.ch表示其字符型成员,a.f表示其单精度型成员。 * C语言程序设计教程 * 说明: (1) 共用体变量中,可以包含若干个成员及若干种类型,但共用体成员不能同时使用。在每一时刻,只有一个成员及一种类型起作用,不能同时引用多个成员及多种类型。 (2) 共用体变量中起作用的成员值是最后一次存放的成员值,因为共用体变量所有成员共同占用同一段内存单元,后来存放的值将原先存放的值覆盖,故只能使用最后一次给定的成员值。如: a.i=278, a.ch=’D’, a.f=5.78; 不能企图通过下面的printf函数得到a.i和a.ch的值: printf(“%d,%c,%f”, a.i, a.ch, a.f); 但能得到a.f的值。 * C语言程序设计教程 * (3) 共用体变量的地址和它的各个成员的地址相同。 (4) 不能企图引用共用体变量名来得到某成员的值。 (5) 共用体变量不能作函数参数,函数的返回值也不能是共用体类型。 (6) 共用体类型和结构体类型可以相互嵌套,共用体中成员可以为数组,甚至还可以定义共用体数组。 * C语言程序设计教程 * 例12.1 写出下列程序的执行结果 main() { union exx { int a,b; struct {int c,d;}lpp; }e={10}; e.b=e.a+20; e.lpp.c=e.a+e.b; e.lpp.d=e.a*e.b; printf(“%d,%d\n”,e.lpp.c,e.lpp.d); } 程序运行结果如下: 60,3600 * C语言程序设计教程 * 12.3 共用体变量的应用 例12.2 设有若干教师的数据,包含有教师编号、姓名、职称,若职称为讲师,则描述他们的所讲课程,若职称为教授,则描述他们所写论文数目。 union cf {char clname[10]; /*所讲课程*/
您可能关注的文档
最近下载
- 2024-2030年中国人才招聘行业运营模式及发展规划分析报告.docx
- 2022-2023学年山东省青岛市高一(上)期末化学试卷(含解析).pdf VIP
- 2024阜阳市公安局招聘警务辅助人员历年考试试题.docx VIP
- 2024年内部审计工作计划范本(6篇) .pdf VIP
- 李光浦-郑氏星案新诠.doc
- 绵阳东辰5升6考试题及答案.docx
- 中华人民共和国爱国主义教育法的精神.doc VIP
- 宣传品印刷工作(服务)方案的先进性、创新性-技术、经济、质量指标-风险分析等.docx VIP
- 中华人民共和国爱国主义教育法主题班会教案.docx VIP
- JTT 1180.10-2018 交通运输企业安全生产标准化建设基本规范第10部分:水路危险货物运输.pdf
文档评论(0)