C语言程序设计_10共用体与枚举.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 共用体与枚举 10.1 共用体 10.2 枚举 10.3 位运算与位段结构 10.4 用TYPEDEF定义类型名 本章小结 10.1 共 用 体 10.1.1 共用体变量的定义 共用体类型的定义形式与结构体类型的定义形式相同,只是其类型关键字不同,共用体的关键字为UNION。一般格式为: UNION共用体类型名 { 成员说明列表 }; 例如: UNION DATA { INT I; CHAR CH; FLOAT F; }; 同定义结构体变量一样,定义共同体变量也有3种方式: (1)先定义共用体类型,再定义共用体类型变量。 (2)在定义共用体类型的同时定义共用体类型变量。 (3)定义共用体类型时,省略共用体类型名,同时定义共用体类型变量。 10.1.2 共用体变量的引用 在定义共用体变量之后,就可以引用该共用体变量的某个成员,引用方式与引用结构体变量中的成员相似。 但是应当注意,一个共用体变量不是同时存放多个成员的值,而只能存放其中的一个值,这就是最后赋给它的值。例如: A.I=278; A.CH=‘D’; A.F=5.78; 共用体变量A中最后的值是5.78。所以不能企图通过下面的PRINTF函数得到A.I和A.CH的值,但能得到A.F的值。 PRINTF(“%D,%C,%F”,A.I,A.CH,A.F); 也可以通过指针变量引用共用体变量中的成员,例如: UNION DATA *PT,X; PT=X; PT-I=278; PT-CH=‘D’; PT-F=5.78; PT是指向UNION DATA类型变量的指针变量,先使它指向共用体变量X。此时PT-I相当于X.I,这和结构体变量中的用法相似。 不能直接用共用体变量名进行输入/输出。 【例10.1】写出下列程序的执行结果。 10.1.3 共用体变量的应用 从前面的介绍可知,共用体虽然可以有多个成员,但在某一时刻,只能使用其中的一个成员。共用体一般不单独使用,通常作为结构体的成员,这样结构体可根据不同情况放不同类型的数据。 例如,需要把学生和教师的数据放在一起处理。学生和教师的数据相同的部分有:姓名、编号和身份。但也有不同的部分:学生需要保存10门课程的分数,分数用浮点数表示,教师则保存工作情况简介,用字符串表示。教师和学生的不同部分可以用共用体描述。 10.2 枚 举 枚举类型定义的一般格式为: ENUM 枚举类型名{标识符1,标识符2,…,标识符N}; 针对枚举类型有几点说明: (1)ENUM是关键字,标识枚举类型,定义枚举类型必须以ENUM开头。 (2)在定义枚举类型时,花括号中的名字称为枚举元素或枚举常量。它们是程序设计者自己指定的,定名规则与标识符相同。这些名字并无固定的含义,只是一个符号,程序设计者仅仅是为了提高程序的可读性才使用这些名字。 (3)枚举元素不是变量,不能改变其值。例如,下面这些赋值是不对的: RED=8; YELLOW=9; 但枚举元素作为常量,它们是有值的。从花括号的第一个元素开始,值分别是0、1、2、3、4,这是系统自动赋给的,可以输出。 (4)枚举常量可以进行比较。 (5)一个枚举变量的值只能是这几个枚举常量之一,可以将枚举常量赋给一个枚举变量。但不能将一个整数赋给它。 (6)枚举常量不是字符串,不能用下面的方法输出字符串“RED”。 【例10.2】枚举类型应用举例。 10.3 位运算与位段结构 10.3.1 位运算 位运算符主要有:,|,~,^,和。 (1)(按位“与”) 运算规则为: 00=0,01=0,10=0,11=1 例如,-53的值为3。其中-5的补码(为简便起见,用8位二进制表示)为1111 1011,3的补码为0000 0011,按位与的结果为0000 0011,即值为十进制数3。 (2)|(按位“或”) 运算规则为: 0|0=0,0|1=1,1|0=1,1|1=1 例如,-5|3的值为-5。-5与3按位或后其真值为-0000101,即-5。 (3)^(按位“异或”) 运算规则为: 0^0=0,0^1=1,1^0=1,1^1=0 例如,-5^3的值为-8。 (4)~(按位“取反”) 运算规则为: ~0=1,~1=0 例如,~7的值为-8。 (5)(左移) 例如,32,将3左移2位,右边(最低位)补0,结果为12,相当于3×2×2的结果。 (6)(右移) 移动对象为正数时,高位补0。为负数时,逻辑右移,高位补0;算术右移,高位补1。VISUAL C++ 6.0和TURBO C 2.0采用的是算术右移,有的C语言版本则采用逻辑右移。 例如,-32,将3右移2位,左边(最高位)补1,结果为-1。 10.3.2 位段结构 位段

文档评论(0)

整理王 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档