




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
9.4 共 用 体 1共用型概念 使几个不同的变量占用同一段内存空间的结构称为共 用型。 2共用类型的定义与结构类型的定义类似 union 共用类型名 成员列表 ; 3共用变量的定义与结构变量的定义类似 直接定义形式如下: 间接定义形式如下: union 共用体名 union 共用体名 分量表 分量表 ; 变量表 ; union 共用体名 变量表; 共用变量的引用 与结构变量一样只能逐个引用共用变量的成员 printf( “%d”, a); 错误 scanf( “%d”, 错误 访问变量 a 各成员的格式为:a. i、a.ch、a.f scanf( “d”, printf( “%dn”,a.i); 5.共用体与结构体相似之处 (1)都是由不同类型的数据项组成一个 (2)都只能对分量进行操作和引用。 例 1: 对共用体变量的使用 struct int num; 编号 char name10; 姓名 char sex; 性别 char job; 类别:s 学生 t 教师 union int ciass; 班号 char position10; 职务 category; per 2; 构造类型(数组 、结构体、共用 体)的定义可以 嵌套 main() int n, i; for ( i=0;i void main() union int i; char string2; a; a.i=24897; printf(“i=%d,string1=%c”,a.i,a.string0); printf(“string2=%cn”, a.string1); string0=0; string1=0; printf(“i=%d,string1=%c”,a.i,a.string0); printf(“string2=%cn”, a.string1); 程序运行结果: i=24897,string1=A,string2=a i=8224,string1=0,string2=0 例3: 将共用体变量作为函数的参数。 #include union test int i; char string2; a; void show(union test a) printf(“i=%d,string1=%c”,a.i,a.string0); printf(“string2=%cn”, a.string1); return; void main() a.i=24897; show(a); string0=0; string1=0; show(a); return; 程序运行结果: I=24897,string1=A,string2=a I=8224,string1=0,string2=0 1定义格式: enum 枚举类型名 取值表; 例如, enum weekdays Sun,Mon,Tue,Wed,Thu,Fri,Sat; 中的标识符称为枚举常量。 它只能为标识符,不能为数字常量或字符常量 2枚举变量的定义(与结构体变量类似) (1)间接定义 例如,enum weekdays w1,w2; (2)直接定义 例如, enum weekdays Sun,Mon,Tue,Wed,Thu,Fri,Sat w1,w2 ; 9.5 枚 举 类 型 3枚举型使用说明 (1)枚举型仅适应于取值有限的数据。 例如: 周天, 年个月。 (2)取值表中的值为枚举元素,其含义由程序解 释。 例如,不是写成“Sun”就自动代表“星期天”。事实 上, 枚举元素用什么表示都可以。 (3)枚举型变量 w1 , w2 只能在定义的值表中取 其中一个枚举常量作为当前值。 (4)枚举元素作为常量是有值的。 定义时顺序号,从开始,所以枚举元素可以进行比 较,比较规则是:序号大者为大! 例如,上例中的Sun=0、Mon=1、Sat=6, 所以 MonSun、 Sat 最大。 (5)枚举元素的值也是可以改变的。 在定义时由程序指定,例如: enum weekdays Sun=7, Mon1 ,Tue, Wed, Thu, Fri, Sat; 则Sun=7,Mon=1,从Tue=2开始,依次增。 (6)一个整型数值不能直接赋值给一个枚举变量。 enum weekdays Sun= 7, Mon 1 ,Tue, Wed, Thu, Fri, Sat; enum weekdays wk1; 不允许直接赋值整数:wk1 = 7; /*数据类型不同*/ 只能写成: wk1= Sun; 或: wk1=( enum weekdays )7; 甚至可以是表达式,如: w2=(enum weekday)(5-3); 例 4: 枚举类型的用法 #include enum months JAN=1,FEB,MAR,APR,MAY, JUN,JUL,AUG,SEP,OCT,NOV,DEC ; main() enum months month; char *mname=“,“January“,“February“, “March“,“April“,“May“,“June“,“July“, “Auguest“, “September“, “October“,“November“,“Dcember“; for(month=JAN;month 对操作数右移给出的位数 x3 将x向右移3位 00111010 3 00000111 3、复合位赋值运算符 a=b; b=t; void main( ) int x,y,t ; s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨云互操作-第1篇-洞察及研究
- 2025年湖南省事业单位招聘考试教师招聘考试教育心理学试题及答案详解
- 创业企业融资路演方案模板
- 人工智能企业员工薪酬激励方案设计
- 山东省庆云县2026届数学九上期末预测试题含解析
- 2026届广西壮族自治区北海市合浦县数学九上期末质量检测试题含解析
- 辽宁省盖州市东城中学2026届数学七年级第一学期期末质量跟踪监视试题含解析
- 四川省成都树德中学2026届数学八上期末经典模拟试题含解析
- 2026届河南省平顶山市宝丰县九年级数学第一学期期末学业质量监测模拟试题含解析
- 四川省雅安市名校2026届七年级数学第一学期期末监测试题含解析
- 2025年全国保密教育线上培训考试试题库附答案【考试直接用】含答案详解
- 2025年度全国普通话水平测试20套复习题库及答案
- 2025年初级会计师考试真题试题及答案
- 上海嘉定区区属国有企业招聘考试真题2024
- 2025心肺复苏术课件
- T-CECS 10400-2024 固废基胶凝材料
- 2025年内蒙古三新铁路有限责任公司招聘笔试参考题库含答案解析
- 初中竞选安全部部长
- 《人体的经络》课件
- 《福禄贝尔》课件
- 期中测试卷(第一单元至第四单元)-2024-2025学年六年级上册数学人教版
评论
0/150
提交评论