C语言程序设计 教学课件 作者 孟庆昌 陈海鹏 马鸣远 刘振英 第9章 结构与联合.ppt

C语言程序设计 教学课件 作者 孟庆昌 陈海鹏 马鸣远 刘振英 第9章 结构与联合.ppt

ID:50320306

大小:672.50 KB

页数:116页

时间:2020-03-08

C语言程序设计 教学课件 作者 孟庆昌 陈海鹏 马鸣远 刘振英 第9章 结构与联合.ppt_第1页
C语言程序设计 教学课件 作者 孟庆昌 陈海鹏 马鸣远 刘振英 第9章 结构与联合.ppt_第2页
C语言程序设计 教学课件 作者 孟庆昌 陈海鹏 马鸣远 刘振英 第9章 结构与联合.ppt_第3页
C语言程序设计 教学课件 作者 孟庆昌 陈海鹏 马鸣远 刘振英 第9章 结构与联合.ppt_第4页
C语言程序设计 教学课件 作者 孟庆昌 陈海鹏 马鸣远 刘振英 第9章 结构与联合.ppt_第5页
资源描述:

《C语言程序设计 教学课件 作者 孟庆昌 陈海鹏 马鸣远 刘振英 第9章 结构与联合.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章结构与联合结构类型及其变量的定义9.1结构成员的引用9.2结构变量的初始化9.3结构数组9.4联合9.7引用自身的结构和链表9.6应用举例9.8结构和指针9.5C语言提供了一种聚合数据类型,结构(或结构体,structure),它是若干相关数据项的集合,其类型可以不同。结构中所含成员的数量和大小必须是确定的,即结构不能随机改变大小。组成一个结构的诸成员的类型可以不同,即结构是异质的。联合(或共用体,union)类型是一种“可变身份”的数据类型,可在不同的时候在同一存储单元里存放不同类型的数据。其定义形式和引用方法与结构相似。9.

2、1.1结构类型的定义结构类型定义的一般形式是:struct结构名{成员表;};9.1结构类型及其变量的定义例如,表示一位学生简要资料的结构类型可定义如下:structstudent{charname[20];longintorder,id;shortintage;charnativity[10],address[100];intscore[10];};定义结构类型时应注意以下几点。(1)结构成员可以是任何基本数据类型的变量,这些成员的类型可以相同或不同。(2)结构成员也可以是数组、指针类型的变量。例如:structclist{intc

3、ount;char*first;char*last;};(3)结构类型可以嵌套定义,即允许一个结构中的一个或多个成员是其他结构类型的变量。structid_card{charname[30];charsex;charnationality[20];structdate{intyear,month,day;}birthday;char*p_addr;structdatesigned_date;longintnumber;char*office;};也可以采用另一种形式:把各个结构类型单独定义,而在结构成员表中仅出现相应结构类型的变量。s

4、tructdate{intyear,month,day;};structid_card{charname[30];charsex;charnationality[20];structdatebirthday;char*p_addr;structdatesigned_date;longintnumber;char*office;};(4)结构类型定义不允许递归,即:一个结构类型的成员中不能含有类型为本结构的变量。例如下面的说明是非法的:structwrong{charname[5];intcount;structwronga;struc

5、twrongb;};(5)在C语言中不支持动态结构类型。(6)在同一结构内各成员的名称不能相同。为了使用结构变量,必须先定义结构变量。定义结构变量常用的方法有以下三种。(1)先定义结构类型,再定义结构变量。例如,structcoord{floatx;floaty;};9.1.2结构变量的定义structcoordfirst,second;注意,关键字struct和结构名必须同时出现,缺一不可。(2)在定义结构类型的同时定义结构变量。例如:structcoord{floatx,y;}first,second;(3)利用无名结构类型定义变

6、量。其一般形式是:struct{成员表;}变量名表;例如:struct{floatx,y;}first,second;9.1.3结构变量的内部表示定义结构类型只是声明一种数据类型的“样板”。这种样板是抽象的,还没有实体,不占用内存空间,不能在程序中对结构类型直接进行赋值、存取等操作。而定义结构变量后,在编译时才为它按照“样板”的要求分配存储空间。结构变量存储单元的分配是按照其类型的样板配置的,通常是依据各个成员在结构中出现的先后次序来分配空间。如定义了结构变量:structstudentZhangsan;其内存空间配置示意如图9-1所

7、示。结构变量可以嵌套。例如,structrectangle{structcoordtopleft;/*左上角坐标*/structcoordbottomrt;/*右下角坐标*/}mybox;图9-1结构变量Zhangsan的存储分配示意图9.2.1引用结构成员的一般方式引用结构成员的一般方式是:结构变量名.成员名例如,first.x表示结构变量first的成员x;first.y表示结构变量first的成员y。9.2结构成员的引用引用结构成员的方式是“由整体到局部”,即首先指明是哪个结构变量,然后通过成员关系运算符“.”找到其中指定的成员

8、。结构变量中成员可以像相同类型的简单变量那样进行相应的运算。structcoord{floatx,y;};structcoordfirst;first.x=1.5;first.y=3.8;如果要存取最内层结构变量的成员,

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

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

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