第7章 结构与联合(课件)-高二《程序设计基础》同步教学(武汉大学版)

2023-07-31
| 18页
| 68人阅读
| 2人下载
普通

内容正文:

第7章 结构与联合 结构类型定义和结构变量说明 任务一 结构数组 任务二 结构指针变量 任务三 联合 任务四 任务一 结构类型定义和结构变量 说明 阶段1 结构类型的定义 阶段2 结构类型变量的说明 阶段3 结构类型变量的赋值 阶段4 结构类型变量的初始化 阶段1 结构类型的定义 结构既然是一种“构造”而成的数据类型,那么在说明和使用之前必须先定义它,也就是构造它,如同在说明和调用函数之前要先定义函数一样。定义一个结构的一般形式为: struct 结构名 { 成员表列 }; 阶段2 结构类型变量的说明 一.先定义结构,再说明结构变量。 二.在定义结构类型的同时说明结构变量。 三.直接说明结构变量。 阶段3 结构类型变量的赋值 前面已经介绍,结构变量的赋值就是给各成员赋值,可用输入语句或赋值语句来完成。 阶段4 结构类型变量的初始化 如果结构变量是全局变量或为静态变量,则可对它作初始化赋值。对局部或自动结构变量不能作初始化赋值。 任务二 结构数组 数组的元素也可以是结构类型的,因此可以构成结构数组,结构数组的每一个元素都是具有相同结构类型的下标结构变量。 任务三 结构指针变量 阶段1 结构指针变量的说明和使用 阶段2 结构指针变量作函数参数 阶段3 动态存储分配 阶段4 链表的概念 阶段1 结构指针变量的说明和使用 结构指针变量中的值是所指向的结构变量的首地址。 通过结构指针即可访问该结构变量,这与数组指针和函数指针的情况是相同的。结构指针变量说明的一般形式为: struct 结构名*结构指针变量名 阶段2 结构指针变量作函数参数 在ANSI C标准中允许用结构变量作函数参数进行整体传送。 但是这种传送要将全部成员逐个传送, 特别是成员为数组时将会使传送的时间和空间开销很大,严重地降低了程序的效率。 因此最好的办法就是使用指针,即用指针变量作函数参数进行传送。 这时由实参传向形参的只是地址,从而减少了时间和空间的开销。 阶段3 动态存储分配 一.分配内存空间函数malloc 调用形式: (类型说明符*) malloc (size) 功能:在内存的动态存储区中分配一块长度为"size" 字节的连续区域。函数的返回值为该区域的首地址。“类型说明符”表示把该区域用于何种数据类型。(类型说明符*)表示把返回值强制转换为该类型指针。“size”是一个无符号数。 阶段3 动态存储分配 二.分配内存空间函数 calloc calloc 也用于分配内存空间。调用形式: (类型说明符*)calloc(n,size) 功能:在内存动态存储区中分配n块长度为“size”字节的连续区域。函数的返回值为该区域的首地址。(类型说明符*)用于强制类型转换。calloc函数与malloc 函数的区别仅在于一次可以分配n块区域。 阶段3 动态存储分配 三.释放内存空间函数free 调用形式: free(void*ptr); 功能:释放ptr所指向的一块内存空间,ptr 是一个任意类型的指针变量,它指向被释放区域的首地址。被释放区应是由malloc或calloc函数所分配的区域。 阶段4 链表的概念 对链表的主要操作有以下几种: 1.建立链表; 2.结构的查找与输出; 3.插入一个节点; 4.删除一个节点; 任务四 联合 阶段1 联合的定义 阶段2 联合变量的说明 阶段3 联合变量的赋值和使用 阶段1 联合的定义 “联合”也是一种构造类型的数据结构。在一个联合内可以定义多种不同的数据类型, 一个被说明为该联合类型的变量中,允许装入该联合所定义的任何一种数据,这在前面的各种数据类型中都是办不到的。 阶段2 联合变量的说明 联合变量的说明和结构变量的说明方式相同, 也有3种形式。即先定义,再说明;定义同时说明;直接说明。 阶段3 联合变量的赋值和使用 对联合变量的赋值和使用,都只能是对变量的成员进行。联合变量的成员表示为: 联合变量名.成员名 例如,a被说明为perdata类型的变量之后,可使用 a.class和a.office。不允许只用联合变量名作赋值或其他操作。 也不允许对联合变量作初始化赋值,赋值只能在程序中进行。一个联合变量的值就是联合变员的某一个成员值。 $$

资源预览图

第7章  结构与联合(课件)-高二《程序设计基础》同步教学(武汉大学版)
1
第7章  结构与联合(课件)-高二《程序设计基础》同步教学(武汉大学版)
2
第7章  结构与联合(课件)-高二《程序设计基础》同步教学(武汉大学版)
3
第7章  结构与联合(课件)-高二《程序设计基础》同步教学(武汉大学版)
4
第7章  结构与联合(课件)-高二《程序设计基础》同步教学(武汉大学版)
5
第7章  结构与联合(课件)-高二《程序设计基础》同步教学(武汉大学版)
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。