清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第八讲 结构与联合

C语言程序设计 清华大学郑莉安颖莲 第八讲 结构与联合 参考书:《C程序设计》第十章 §10.1-§10.6,§10.8 Page 1
C语言程序设计 清华大学 郑莉 安颖莲 Page 1 第八讲 结构与联合 参考书:《C程序设计》第十章 §10.1-§10.6,§10.8

C语言程序设计 清华大学郑莉安颖莲 本讲主要内容 结构的定义 ·结构变量说明 。结构体的使用和始化 ·结构数组 ·结抱指针 ·结构体在函数间的传递 。结构嵌套 ·联合体 (共用体) Page 2
C语言程序设计 清华大学 郑莉 安颖莲 Page 2 本讲主要内容 • 结构的定义 • 结构变量说明 • 结构体的使用和初始化 • 结构数组 • 结构指针 • 结构体在函数间的传递 • 结构嵌套 • 联合体(共用体)

C语言程序设计 清华大学郑莉安颖莲 结构的定定义 ·结构的概念 一是C语言中的构造类型,是由不同数据类型的数据 组成的集合体。 -为处理复杂的数据结构提供了手段。 -为函数间传递不同类型的参数提供了便利。 定义结构类型 struct结构名 数据类型 成员名1; 数据类型 成员名2; 数据类型 成员名n; }; Page 3
C语言程序设计 清华大学 郑莉 安颖莲 Page 3 结构的定义 • 结构的概念 - 是C语言中的构造类型,是由不同数据类型的数据 组成的集合体。 - 为处理复杂的数据结构提供了手段。 - 为函数间传递不同类型的参数提供了便利。 • 定义结构类型 struct 结构名 { 数据类型 成员名 1; 数据类型 成员名 2; : 数据类型 成员名 n; };

C语言程序设计 清华大学郑莉安颖莲 结构变量说明 ·变量说明形式 struct 结构名结构变量名; ·注意: -结构变量的存储类型概念、它的寿命、可见性及使用范围与 普通变量、数组等完全一致。 一结构变量说明必须在结构类型定义之后,二者也可同时进行。 结构变量占内存大小可用sizeof运算求出: sizeof(运算量) 例1 Page 4
C语言程序设计 清华大学 郑莉 安颖莲 Page 4 结构变量说明 • 变量说明形式 struct 结构名 结构变量名; • 注意: -结构变量的存储类型概念、它的寿命、可见性及使用范围与 普通变量、数组等完全一致。 -结构变量说明必须在结构类型定义之后,二者也可同时进行。 -结构变量占内存大小可用 sizeof 运算求出: sizeof(运算量) 例 1

C语言程序设计 清华大学郑莉安颖莲 结构体的使用和初始化 。 使用形式 一般情况下不能把结构体作为一个整体参加数据处 理。 -结构体成员的引用形式:结构变量名.成员名 ”."运算优先于”*”运算: *zhao.name等同于*(zhao.name) 。 初始化 -仅限于外部的和static型结构体 例2 Page 9
C语言程序设计 清华大学 郑莉 安颖莲 Page 9 结构体的使用和初始化 • 使用形式 - 一般情况下不能把结构体作为一个整体参加数据处 理。 - 结构体成员的引用形式:结构变量名.成员名 - "."运算优先于"*"运算: *zhao.name 等同于 *(zhao.name) • 初始化 - 仅限于外部的和static型结构体 例 2

C语言程序设计 清华大学郑莉安颖莲 结构数组 ·具有相同结构的结构体也可以组成数组 。 结构数组的说明形式 例3 struct结构名结构数组名[元素个数]; 结构数组初始化 例4 struct结构名结构数组名[]={初始数据}; Page 14
C语言程序设计 清华大学 郑莉 安颖莲 Page 14 结构数组 • 具有相同结构的结构体也可以组成数组 • 结构数组的说明形式 struct 结构名 结构数组名[元素个数]; • 结构数组初始化 struct 结构名 结构数组名[]={初始数据}; 例 3 例 4

C语言程序设计 清华大学郑莉安颖莲 结构指针 概念 存放结构体首地址 一结构指针的运算也按照C语言的地址运算原则进行。 例如,结构指针加一将指向内存中下一个结构体。 ·说明形式: struct结构名*结构指针名; ·用结构指针访问结构成员 (*结构指针名).成员名或 结构指针名->成员名 ·运算次序 ++pman->name 等同于+(pman->name) *pman->name 等同于*(pman->name) 例5 Page 23
C语言程序设计 清华大学 郑莉 安颖莲 Page 23 结构指针 • 概念 - 存放结构体首地址 - 结构指针的运算也按照C语言的地址运算原则进行。 例如,结构指针加一将指向内存中下一个结构体。 • 说明形式: struct 结构名 *结构指针名; • 用结构指针访问结构成员 (*结构指针名).成员名 或 结构指针名->成员名 • 运算次序 ++pman->name 等同于 ++(pman->name) *pman->name 等同于 *(pman->name) 例 5

C语言程序设计 清华大学郑莉安颖莲 结尥体在函数间的传递 ·以结构体变量作为函数参数 例6 ~传递结构体首地址 。 结构型函数 例7 结构指针型函数 例8 Page 27
C语言程序设计 清华大学 郑莉 安颖莲 Page 27 结构体在函数间的传递 • 以结构体变量作为函数参数 - 传递结构体首地址 • 结构型函数 • 结构指针型函数 例 6 例 7 例 8

C语言程序设计 清华大学郑莉安颖莲 结杓嵌套 ·结构的成员项是结构体 ·参加运算和操作的只能是最内层结构的成员项 ·内层结构成员的引用形式: 结构变量名.外层成员名.内层成员名 Page 42
C语言程序设计 清华大学 郑莉 安颖莲 Page 42 结构嵌套 • 结构的成员项是结构体 • 参加运算和操作的只能是最内层结构的成员项 • 内层结构成员的引用形式: 结构变量名.外层成员名.内层成员名

C语言程序设计 清华大学郑莉安颖莲 联合体 (共用体) 定义形式: union联合名 数据类型 成员名1; 数据类型 成员名2; 。 数据类型 成员名n; }; ·引用形式: 联合名.成员名 Page 43
C语言程序设计 清华大学 郑莉 安颖莲 Page 43 联合体(共用体) • 定义形式: union 联合名 { 数据类型 成员名 1; 数据类型 成员名 2; : 数据类型 成员名 n; }; • 引用形式: 联合名.成员名
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第七讲 查找与排序算法.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第六讲 指针.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第五讲 函数.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第四讲 数组的概念及应用.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第三讲 C语言程序的基本控制结构.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第二讲 C语言基础.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第一讲 预备知识(郑莉、安颖莲).pps
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第14章 C++对C的扩充.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第13章 文件.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第12章 位运算.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第10章 指针.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第9章 预处理命令.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 函数.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第7章 数组.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第6章 循环控制.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第5章 选择结构程序设计.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第4章 最简单的c程序设计——顺序程序设计.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第3章 数据类型、运算符与表达式.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第2章 程序的灵魂——算法.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第1章 C语言概述.ppt
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第九讲 位运算 枚举 类型定义 编译预处理.pps
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第11章 结构体与共用体.ppt
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十讲 文件.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十一讲 数据结构基础(一).pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十二讲 数据结构基础(二).pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十三讲 非线性结构及数据结构应用实例.pps
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第01章 C语言概述.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第02章 数据类型.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第03章 顺序结构程序设计.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第04章 选择结构程序设计.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第05章 循环结构程序设计.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第06章 数组.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第07章 函数与变量作用域.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第08章 编译预处理.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第09章 指针(1/2).ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第09章 指针(2/2).ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第10章 结构类型.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第11章 位运算.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第12章 文件.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第2章 硬件设备及组建.ppt