C语言程序设计ppt第10章ppt课件.ppt

C语言程序设计ppt第10章ppt课件.ppt

ID:58886037

大小:133.00 KB

页数:78页

时间:2020-09-30

C语言程序设计ppt第10章ppt课件.ppt_第1页
C语言程序设计ppt第10章ppt课件.ppt_第2页
C语言程序设计ppt第10章ppt课件.ppt_第3页
C语言程序设计ppt第10章ppt课件.ppt_第4页
C语言程序设计ppt第10章ppt课件.ppt_第5页
资源描述:

《C语言程序设计ppt第10章ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言程序设计TheCProgrammingLanguage华中科技大学计算机学院 曹计昌7/30/20211华中科技大学计算机学院*10.7联合 10.7.1联合类型的定义与结构类似,联合类型也是一种构造类型。一个联合类型中包含有多个成员,这些成员共享共同的存储区域,但这些成员并不同时存在;联合存储区域的大小由各个成员中所占字节数最大的成员决定;在任何时刻,各个成员中只能有一个成员拥有该存储。除了用关键字union取代struct之外,联合类型的定义、联合变量的声明、以及联合成员的引用在语法上与结构完全相同。7/30/20212华中科技大学计算机学院如果有3个不同数据类型(char,sho

2、rt,long)的变量要分时共用一个共同的存储区域,则可以定义如下的联合类型:unionchl{charc;shorth;longl;};这里chl是所定义的联合类型的联合名(tag),它与union一起形成一个unionchl的联合类型。c、h、l是联合类型的成员。7/30/20213华中科技大学计算机学院10.7.2联合变量的声明、初始化及联合成员的引用定义了unionchl的联合类型后,可以通过:unionchlu;来声明一个unionchl类型的变量。也可以在定义unionchl联合类型的同时来声明相应的联合变量。如:unionchl{charc;shorth;longl;}v={ˊ

3、9ˊ};它在定义unionchl联合类型的同时声明了联合类型的变量v,并且对其进行了初始化。在不产生二义的情况下,往往简称联合类型的变量为联合。7/30/20214华中科技大学计算机学院联合变量的声明、初始化值得注意的是,联合变量的初始化与结构的初始化在形式上相同,都应该用花括号界定初值,但联合是一种特殊形式的构造类型的数据,在同一时刻它只拥有其中的一个成员。因此,初始化时只能对联合的第1个成员进行初始化。换言之,初值表中只能包含与第1个成员数据类型相同的一个初值。如上面例子中的v={'9'}。也可以:unionchlv={ˊ9ˊ},w={ˊaˊ};7/30/20215华中科技大学计算机学院

4、例10.12通过例子对联合的特性进行进一步分析。#include"stdio.h"unionchl{charc;shorth;longl;};voidshow(unionchl*pu);voidshow_memoy(unionchl*pu);7/30/20216华中科技大学计算机学院voidmain(void){unionchlu;printf("sizeofuis%d",sizeof(u));u.l=0x31323334L;show(&u);show_memoy(&u);u.h=0x3638;show(&u);show_memoy(&u);}7/30/20217华中科技大学计算机学院v

5、oidshow(unionchl*pu){printf("charformat:%c",(*pu).c);printf("intformat:%hx",pu->h);printf("longformat:%lx",(*pu).l);}voidshow_memoy(unionchl*pu){char*p=(char*)pu;inti=0;while(i<4){printf("addr%dthbyteofuis0x%pt",i,p+i);printf("theASCIIin%dthbyteofuis%c",i,*(p+i));i++;}}7/30/20218华中科技大学计算机学

6、院程序的运行结果如下:sizeofuis4charformat:4intformat:3334longformat:31323334addr0thbyteofuis0xFFD8theASCIIin0thbyteofuis4addr1thbyteofuis0xFFD9theASCIIin1thbyteofuis3addr2thbyteofuis0xFFDAtheASCIIin2thbyteofuis2addr3thbyteofuis0xFFDBtheASCIIin3thbyteofuis1charformat:8intformat:3638longformat:31323638addr0thb

7、yteofuis0xFFD8theASCIIin0thbyteofuis8addr1thbyteofuis0xFFD9theASCIIin1thbyteofuis6addr2thbyteofuis0xFFDAtheASCIIin2thbyteofuis2addr3thbyteofuis0xFFDBtheASCIIin3thbyteofuis17/30/20219华中科技大学计算机学院对程序和程序的运行结果可以

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

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

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