C语言共用体和枚举.ppt

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

12.1 共用体类型与共用体变量 12.2 共用体变量的引用 12.3 共用体变量的应用 12.4 位运算与位段结构 12.5 枚举类型 12.6 类型定义;12.1 共用体类型与共用体变量; ? ;(2) 定义共用体类型的同时定义共用体变量;注意区分: “共用体”变量:各成员占相同的起始地址,在内存中所占字节数度等于最长的成员在内存中所占的字节数。 “结构体”变量:各成员占不同的地址,在内存中所占字节数等于全部成员在内存中所占的字节数之和。;12.2 共用体变量的引用 ; 说明:  (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的值。; (3) 共用体变量的地址和它的各个成员的地址相同。 (4) 不能企图引用共用体变量名来得到某成员的值。 (5) 共用体变量不能作函数参数,函数的返回值也不能是共用体类型。  (6) 共用体类型和结构体类型可以相互嵌套,共用体中成员可以为数组,甚至还可以定义共用体数组。 ;例12.1 写出下列程序的执行结果;12.3 共用体变量的应用 例12.2 设有若干教师的数据,包含有教师编号、姓名、职称,若职称为讲师,则描述他们的所讲课程,若职称为教授,则描述他们所写论文数目。 ;#define format ″%d %s %c ″ main( ) { int i;  for(i=0; i3; i++) {scanf(format,teach[i].no,teach[i].name, teach[i].zc); if ( teach[i].zc= =‘L’) scanf(”%s”, teach[i].x .clname);  else if (teach[i].zc= =‘P’) scanf (”%d”, teach[i].x .num); else printf (”input data error\n”);  };for(i=0; i3; i++) { printf ( ″%d %s %c ″ , teach[i].no,teach[i].name,teach[i].zc); if (teach[i].zc= =‘L’) printf (”%s\n”, teach[i].x.clname); else if ( teach[i]. zc= =‘ P’ ) printf (%d\n, teach[i].x. num); else printf(″data error\n″);  } } ;12.4 位运算与位段结构;1.按位与── (1)格式:xy (2)规则:对应位均为1时才为1,否则为0: 例如,39=1: 0011 1001 0001=1 (3)主要用途:取(或保留)1个数的某(些)位,其余各位置0。 2.按位或──| (1)格式:x|y (2)规则:对应位均为0时才为0,否则为1: ;例如,3|9=11: 0011 | 1001 1011=11 (3)主要用途:将1个数的某(些)位置1,其余各位不变。 3.按位异或──

文档评论(0)

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

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

1亿VIP精品文档

相关文档