C语言程序 设计 第11章 共用体、枚举和位运算.ppt

C语言程序 设计 第11章 共用体、枚举和位运算.ppt

ID:50350809

大小:280.00 KB

页数:28页

时间:2020-03-08

C语言程序 设计 第11章 共用体、枚举和位运算.ppt_第1页
C语言程序 设计 第11章 共用体、枚举和位运算.ppt_第2页
C语言程序 设计 第11章 共用体、枚举和位运算.ppt_第3页
C语言程序 设计 第11章 共用体、枚举和位运算.ppt_第4页
C语言程序 设计 第11章 共用体、枚举和位运算.ppt_第5页
资源描述:

《C语言程序 设计 第11章 共用体、枚举和位运算.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言程序设计第11章共用体、枚举和位运算第11章共用体、枚举和位运算主要内容11.1共用体11.2枚举11.3位运算11.1共用体11.1.1共用体概述11.1.2共用体类型定义11.1.3共用体变量的定义11.1.4共用体变量的引用11.1.5共用体数据特点11.1.1共用体概述共用体是有别于以前任何一种数据类型的特殊数据类型,它是多个成员的一个组合体,但与结构体不同,共用体的成员被分配在同一段内存空间中,它们的开始地址相同,使得同一段内存由不同的变量共享。共同使用这段内存的变量既可以具有相同的数据类型,也可以具有不同的数据类型。20

2、00H存储inti存储charch存储floatf11.1.2共用体类型定义共用体类型定义的一般形式union共用体名{数据类型成员名1;数据类型成员名2;……数据类型成员名n;};11.1.2共用体类型定义例如,以下用法定义了数据类型名为uniondata的共用体数据类型:uniondata{inti;charch;floatf;};在这里定义的uniondata共用体类型有3个成员:i、ch、f,它们的数据类型分别是int、char、float。11.1.3共用体变量的定义1.共用体类型与共用体变量同时定义uniondata{inti

3、;charch;floatf;}u1,u2,u3;2.先定义共用体类型,再定义共用体变量uniondatau4,u5;3.直接定义共用体变量union{inti;charch;floatf;}u6,u7,u8;11.1.3共用体变量的定义共用体与结构体的区别:⑴结构体说明的是一个组合型的数据,多个不同的数据项可以作为一个数据整体对待;而共用体说明的是内存的一种共享机制,多个不同的变量可以使用同一段内存空间。⑵结构体中各成员有不同的地址,所占内存长度等于全部成员所占内存之和;而共用体各成员有相同的地址,所占内存长度等于最长的成员所占内存。1

4、1.1.4共用体变量的引用共用体是对多个变量共享同一段内存的定义,因此单独使用共用体变量时没有任何意义,只能通过引用共用体的成员来使用共用体变量。例如:使用u5.i形式引用共用变量u5的成员i;使用u5.ch形式引用共用变量u5的成员ch;使用u5.f形式引用共用变量u5的成员f。下面是在程序中使用共用体变量的语句:u1.i=20;scanf("%d",&u2.i);printf("%d",u1.i+u2.i);11.1.5共用体数据特点共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用,即:共用体

5、变量中的值是最后一次存放的成员的值。例如,对以下赋值语句,当依次执行之后,只有第三个赋值语句起作用:u2.i=1;u2.ch='a';u2.f=1.5;若此时使用成员i或者ch的值则无任何意义。与结构体变量不同,共用体变量不能初始化,下面的用法是完全错误的。uniondata{inti;charch;floatf;}a={1,'a',1.5};共用体变量的地址和它的各成员的地址都是同一个地址值,如&u1、&u.i、&u.ch、&u.f是相同的。11.1.5共用体数据特点例11-1分析以下程序的执行结果。#include"stdio.h"u

6、nion{longi;intk;charm;chars[4];}part;main(){part.i=0x12345678;printf("part.i=%lx",part.i);printf("part.k=%x",part.k);printf("part.m=%x",part.m);printf("part.s[0]=%xtpart.s[1]=%x",part.s[0],part.s[1]);printf("part.s[2]=%xtpart.s[3]=%x",part.s[2],part.s[3]);}11.

7、2枚举11.2.1枚举概述11.2.2枚举类型及枚举变量11.2.3枚举应用11.2.1枚举概述我们在编写程序时,经常遇到变量取值能够列举的情况,例如,表示星期的变量取值有星期一到星期天7个值,表示月份的变量取值有一月到十二月12个值,表示三原色的变量取值有红、黄、蓝3个值等。为了更好地处理这一类变量,ANSIC新标准增加了枚举数据类型,它把变量允许的取值明确列举了出来,使程序更直观,处理更有效。与结构体、共用体一样,枚举也不是一种固定结构的数据类型,它可以根据具体的情况,使用enum关键字进行定义,当定义了一种枚举类型以后,就可以使用已

8、经定义的枚举数据类型定义枚举变量。11.2.2枚举类型及枚举变量1.枚举类型的定义定义形式enum枚举名{枚举值表};例如:enumweekday{Sun,Mon,Tue,Wed,Thu,Fi

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

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

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