1 / 12

第八讲 结构与联合

第八讲 结构与联合. 参考书: 《C 程序设计 》 第十章 §10.1-§10.6,§10.8. 本讲主要内容. 结构的定义 结构变量说明 结构体的使用和初始化 结构数组 结构指针 结构体在函数间的传递 结构嵌套 联合体(共用体). 结构的定义. 结构的概念 是 C 语言中的构造类型,是由不同数据类型的数据 组成的集合体。 为处理复杂的数据结构提供了手段。 为函数间传递不同类型的参数提供了便利。 定义结构类型 struct 结构名 { 数据类型 成员名 1 ; 数据类型 成员名 2 ;  :

dewei
Download Presentation

第八讲 结构与联合

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第八讲 结构与联合 参考书:《C程序设计》第十章§10.1-§10.6,§10.8

  2. 本讲主要内容 • 结构的定义 • 结构变量说明 • 结构体的使用和初始化 • 结构数组 • 结构指针 • 结构体在函数间的传递 • 结构嵌套 • 联合体(共用体)

  3. 结构的定义 • 结构的概念 • 是C语言中的构造类型,是由不同数据类型的数据组成的集合体。 • 为处理复杂的数据结构提供了手段。 • 为函数间传递不同类型的参数提供了便利。 • 定义结构类型 struct 结构名 { 数据类型 成员名 1; 数据类型 成员名 2;  : 数据类型 成员名 n; };

  4. 结构变量说明 • 变量说明形式 struct 结构名 结构变量名; • 注意: • 结构变量的存储类型概念、它的寿命、可见性及使用范围与普通变量、数组等完全一致。 • 结构变量说明必须在结构类型定义之后,二者也可同时进行。 • 结构变量占内存大小可用 sizeof 运算求出:sizeof(运算量) 例 1

  5. 结构体的使用和初始化 • 使用形式 • 一般情况下不能把结构体作为一个整体参加数据处理。 • 结构体成员的引用形式:结构变量名.成员名 • "."运算优先于"*"运算: *zhao.name 等同于 *(zhao.name) • 初始化 • 仅限于外部的和static型结构体 例 2

  6. 结构数组 • 具有相同结构的结构体也可以组成数组 • 结构数组的说明形式 struct 结构名 结构数组名[元素个数]; • 结构数组初始化 struct 结构名 结构数组名[]={初始数据}; 例 3 例 4

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

  8. 结构体在函数间的传递 • 以结构体变量作为函数参数 • 传递结构体首地址 • 结构型函数 • 结构指针型函数 例 6 例 7 例 8

  9. 结构嵌套 • 结构的成员项是结构体 • 参加运算和操作的只能是最内层结构的成员项 • 内层结构成员的引用形式: 结构变量名.外层成员名.内层成员名

  10. 联合体(共用体) • 定义形式: union 联合名 { 数据类型 成员名 1; 数据类型 成员名 2;  : 数据类型 成员名 n; }; • 引用形式: 联合名.成员名

  11. uarea c_data s_data l_data 例: union uarea { char c_data; short s_data; long l_data; } 例 9

  12. 作业 • 复习: 第十章 §10.1-§10.6,§10.8 • 10.2, 10.3, 10.4, 10.5 • 预习: 第八章、第十一章

More Related