枚举联合和位运算

枚举联合和位运算

ID:46787087

大小:269.81 KB

页数:21页

时间:2019-11-27

枚举联合和位运算_第1页
枚举联合和位运算_第2页
枚举联合和位运算_第3页
枚举联合和位运算_第4页
枚举联合和位运算_第5页
资源描述:

《枚举联合和位运算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第七章枚举、联合和位运算C引入两种用户自定义类型枚举与联合准确描述与表示数据。增强程序的可读性和数据访问的灵活性。C引入位运算增强C语言对数据处理的精细程序。C既有高级程序语言的特点,又有低级程序语言的特点。7.1枚举型1.枚举类型的定义enum枚举类型名{取值表};例如,enumweekdays{Sun,Mon,Tue,Wed,Thu,Fri,Sat};2.枚举变量的定义──与结构变量类似(1)间接定义例如,enumweekdaysworkday;(2)直接定义例如,enum[weekdays]{Sun,Mon,Tue,Wed,Thu,Fri,Sat}workday;3.说明(1)使用赋值

2、语句对枚举变量赋值,不能把一个枚举类型的数值赋给另一个枚举类型的变量。例如,man=male;brush=red;(2)不能直接输入/输出枚举类型变量的值,必要时可以通过枚举值间接的输入/输出。例如,输入:scanf(“%d”,&m);switch(m){case0:man=male;break;case1:man=female;break;}(3)枚举类型的比较、算术和逻辑运算等,实际上是用其枚举值进行运算的。比如:day1=sun;//sun的值为0day2=fri;//fri的值为5if(day1

3、0[=整型常数],标识符1[=整型常数],……标识符n[=整型常数],}(5)枚举常量必须是标识符,不能是整数、字符或者其它符号。例如:enumdigital{1,2,3,4,5,6};//整数不能作为枚举常量enumalp{‘a’,’b’,’c’};//字符不能作为枚举常量enumop{+,-,*};//操作符不能作为枚举常量(6)枚举常量是标识符,定义枚举类型时也就定义了这些标识符,因为标识符不能重复定义,所以枚举常量也不能与前面已经定义过的标识符重复。例如:enumq1{a,b,c,d,a};//a被重复定义又如:#definen100;enumq1{a,b,c,d,e};enumq2

4、{b,n,d1,e1};//其中b与n被重复定义7.2联合体构造数据类型,也叫共用体用途:使几个不同类型的变量共占一段内存(相互覆盖)联合体类型定义定义形式:union联合类型名{类型标识符成员名;类型标识符成员名;…………….}变量名表;例uniondata{intix;charch;longf;}a;fchix类型定义不分配内存成员表形式一:uniondata{inti;charch;floatf;}a,b;形式二:uniondata{inti;charch;floatf;};uniondataa,b,c,*p,d[3];形式三:union{inti;charch;floatf;}a,b

5、,c;共用体变量的定义fchifchiab共用体变量定义分配内存,长度=最长成员所占字节数共用体变量任何时刻只有一个成员存在共用体变量引用引用方式:例a.i=1;a.ch=‘a’;a.f=1.5;printf(“%d”,a.i);(编译通过,运行结果不对)引用规则不能引用共用体变量,只能引用其成员共用体指针名->成员名共用体变量名.成员名(*共用体指针名).成员名uniondata{inti;charch;floatf;};uniondataa,b,c,*p,d[3];a.ia.cha.fp->ip->chp->f(*p).i(*p).ch(*p).fd[0].id[0].chd[0].f

6、共用体变量中起作用的成员是最后一次存放的成员例union{inti;charch;floatf;}a;a=1;()不能在定义共用体变量时初始化例union{inti;charch;floatf;}a={1,’a’,1.5};()可以用一个共用体变量为另一个变量赋值例floatx;union{inti;charch;floatf;}a,b;a.i=1;a.ch=‘a’;a.f=1.5;b=a;()x=a.f;()例将一个整数按字节输出0110000101000001低字节高字节0100000101100001ch[0]ch[1]运行结果:i=60501ch0=101,ch1=141ch

7、0=A,ch1=amain(){unionint_char{inti;charch[2];}x;x.i=24897;printf("i=%o",x.i);printf("ch0=%o,ch1=%och0=%c,ch1=%c",x.ch[0],x.ch[1],x.ch[0],x.ch[1]);}7.3位运算为了节省内存空间,在系统软件中常将多个标志状态简单地组合在一起,存储到一个字节(或字)中。C语

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。