第9章 结构体与联合体.ppt

第9章 结构体与联合体.ppt

ID:48755605

大小:2.55 MB

页数:42页

时间:2020-01-21

第9章  结构体与联合体.ppt_第1页
第9章  结构体与联合体.ppt_第2页
第9章  结构体与联合体.ppt_第3页
第9章  结构体与联合体.ppt_第4页
第9章  结构体与联合体.ppt_第5页
资源描述:

《第9章 结构体与联合体.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第9章结构体与联合体9.1结构体类型变量定义结构类型变量包括两个方面:首先要定义结构体类型,以便确定该类型中有哪些成员,各成员属于什么数据类型;然后再定义属于该结构体类型的变量。9.1.1结构体类型变量的定义1.定义结构体类型定义结构体类型的一般形式如下:struct结构体类型名{成员表};其中在“成员表”中定义了该类型中有哪些成员,各成员属于什么数据类型。2.定义结构体类型变量当在程序中定义了某个结构体类型以后,就可以定义属于该结构体类型的变量了。定义结构体类型变量的一般形式为struct结构体类型名变量表;定义结构体类型与定义结构体类型变量是分开说明的。C语言还允许在定义结构

2、体类型的同时定义结构体类型变量。其形式为struct结构体类型名{成员表}变量表;C语言还允许直接定义结构体类型变量。其形式为struct{成员表}变量表;在程序中定义了某结构体类型的变量后就可以被引用。结构体变量的一般引用方式如下:结构体变量名.成员名其中“.”为结构体成员运算符,它的优先级最高。由此可以看出,在引用结构体变量时,一般是对其中的成员逐个引用。9.1.2结构体类型变量的引用C语言规定,结构体类型的定义可以嵌套9.1.3结构体的嵌套与普通变量一样,在定义结构体类型变量的同时也可以对结构体类型变量赋初值。但C语言规定,只能对全局的或静态的局部结构体类型变量进行初始化。

3、为了将结构体类型变量定义为静态存储类型,在定义时应加上static关键字。但是,目前在大部分计算机系统中,对结构体类型变量初始化时不必加static关键字,其原理与普通数组的初始化一样。9.1.4结构体类型变量的初始化在对结构体类型变量进行初始化时,与普通数组一样,只不过在结构体变量中,各成员的数据类型可以不同,而普通数组中的各元素类型是相同的。与基本数据类型的变量一样,结构体类型的变量也可以作为函数参数,并且,还可以定义结构体类型的函数。9.1.5结构体与函数1.结构体类型变量的成员作为函数参数与数组元素可以作为函数参数一样,结构体类型变量中的成员也可以作为函数参数。在这种情况

4、下,在被调用函数中的形参是一般变量,而调用函数中的实参是结构体类型变量中的一个成员,但要求它们的类型应一致。2.结构体类型变量作为函数参数与一般变量可以作为函数参数一样,结构体类型的变量也可以作为函数参数。在这种情况下,在被调用函数中的形参是结构体类型的变量,调用函数中的实参也是结构体类型的变量,但要求它们属于同一个结构体类型。3.结构体类型的函数与定义标准数据类型函数一样,C语言也允许定义结构体类型的函数。结构体类型函数的返回值是结构体类型的数据。9.2结构体数组与整型数组、实型数组、字符型数组一样,在程序中也可以定义结构体类型的数组。但C语言规定,同一个结构体数组中的元素应为

5、同一种结构体类型。9.2.1结构体数组的定义与引用与普通数组一样,结构体类型数组也能作为函数参数,并且形参与实参结合的方式完全一样。如果在被调用函数中改变了结构体类型形参数组元素中各成员值,实际上也就改变了结构体类型实参数组元素中的各成员值。因为结构体类型形参数组与结构体类型实参数组是同一个存储空间。9.2.2结构体数组作为函数参数9.3结构体与指针结构体类型的指针变量指向结构体类型变量或数组(或数组元素)的起始地址。9.3.1结构体类型指针变量的定义与引用当结构体类型的指针变量p指向一个结构体类型变量后,下列3种表示是等价的:结构体变量名.成员(*p).成员p->成员它们都表示

6、结构体变量中的一个成员。结构体类型指针可以指向结构体类型的变量,因此,当形参是结构体类型指针变量时,实参也可以是结构体类型指针(即地址)。在结构体类型指针作为函数参数的情况下,由于传送的是地址,因此,如果在被调用函数中改变了结构体类型形参指针所指向的地址中的值,实际上也就改变了结构体类型实参指针所指向的地址中的值。9.3.2结构体类型指针作为函数参数结构体类型指针也可以指向数组或数组元素,因此,当形参是结构体类型指针变量时,实参也可以是结构体类型数组名或数组元素的地址。与标准数据类型的数组与指针一样,在结构体类型数组指针作函数参数时,也可以有以下4种情况:(1)实参与形参都用结构

7、体类型数组名;(2)实参用结构体类型数组名,形参用结构体类型指针变量;(3)实参与形参都用结构体类型指针变量;(4)实参用结构体类型指针变量,形参用结构体类型数组名。9.4链表1.链表的一般结构链表由结点元素组成。为了适应链表的存储结构,计算机存储空间被划分为一个一个小块,每一小块占若干字节,通常称这些小块为存储结点。将存储空间中的每一个存储结点分为两部分:一部分用于存储数据元素的值,称为数据域;另一部分用于存放下一个数据元素的存储序号(即存储结点的地址),称为指针域。9.4.1

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

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

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