- 0
- 0
- 约3.25千字
- 约 36页
- 2020-02-07 发布于辽宁
- 举报
第10章 结构体和共用体 第10章 结构体和共用体 10.1 结构体及结构体变量10.2 结构体数组10.3 结构体指针10.4 链表10.5 共用体10.6 综合实训习 题 10.1 结构体及结构体变量 知识导例阅读并理解下面的程序。 10(242-282)P41 fyy_Embed_1.png 图10-1 程序ex10_1_1.c运行结果相关知识在前面的章节中,已经介绍了C语言提供的基本数据类型,但在实际中仅仅应用这些基本数据类型并不能很好地满足需要。1)结构体(关键字是struct)。2)共用体(关键字是union)。 10.1 结构体及结构体变量 3)枚举类型(关键字是enum)。4)typedef关键字为已存在的类型定义新名字。1.typedef关键字2.结构体类型的定义3.结构体变量(1)结构体变量的定义 程序ex10_1_1中的代码:1)先定义结构体类型,再定义结构体变量,在程序ex10_1_1中就是使用这种方法。2)在定义结构体类型的同时定义结构体变量。3)直接定义结构体变量。 10.1 结构体及结构体变量 1)类型和变量是不同的概念,结构体类型仅仅是一个类型,系统不会为一个类型分配存储空间,而会为这个类型定义的变量分配存储空间。2)结构体变量中的成员(域)可以单独使用,它的作用相当于普通变量。3)结构体中的成员可以是任意类型的变量,当然也可以是一个结构体类型的变量。4)结构体中的成员名,可以同程序中其他变量名同名而互不影响,因为二者代表的不是同一个对象。 10.1 结构体及结构体变量 (2)结构体变量的存储结构 对于结构体变量,由于其中含有多个成员,所以与整型、实型、字符型等简单变量的存储有所不同,系统会为结构体变量中的每一个成员都分配存储空间。需要注意的是,不同的编译系统为结构体分配存储空间的策略和实现也不相同。在Turboc中,系统为结构体变量所分配的空间大小等于结构体中各成员所占的空间长度之和,但在VC++ 6.0环境中却不一样。 10(242-282)P41 fyy_Embed_2.jpg 图10-2 结构体变量p1在内存中的存储情况(B表示Byte)表10-1 结构体变量中不同数据类型成员的对齐方式 10.1 结构体及结构体变量 表10-1 结构体变量中不同数据类型成员的对齐方式 10(242-282)P41 fyy_Embed_3.jpg 图10-3 结构体变量p2在内存中的存储情况(B表示Byte)(3)结构体变量的引用 在定义了一个结构体变量以后,就要对这个变量进行存取,但是在C语言中对结构体变量进行操作的时候,除了可以对相同类型的结构体变量进行整体赋值外,不能对一个结构体变量进行整体的输入输出,而是要逐成员引用。 10.1 结构体及结构体变量 (4)结构体变量的初始化 和其他类型一样,结构体变量在定义的时候,也可以直接初始化。实践训练【实训项目】1.实训内容2.解决方案 10(242-282)P41 fyy_Embed_4.png 图10-4 程序prac10_1_1.c运行结果3.项目分析 10.2 结构体数组 知识导例阅读下面的程序,理解并掌握结构体数组的使用。相关知识 10(242-282)P41 fyy_Embed_5.png 图10-5 程序ex10_2_1.c运行结果1.结构体数组的定义 10.2 结构体数组 10(242-282)P41 fyy_Embed_6.jpg 图10-6 结构体数组d1中各数组元素的值2.结构体数组的引用3.结构体数组的初始化实践训练【实训项目】1.实训内容 10.2 结构体数组 2.解决方案 10(242-282)P41 fyy_Embed_7.png 3.项目分析知识拓展 10.2 结构体数组 和基本类型的数组一样,如果需要也可以定义二维、三维和多维的结构体数组。 10.3 结构体指针 知识导例1.阅读下面的程序,理解并掌握结构体及指针的使用 10(242-282)P41 fyy_Embed_8.png 图10-8 程序ex10_3_1.c运行结果 10.3 结构体指针 2.阅读下面的程序,理解并掌握函数之间有关结构体类型数据的传递 10(242-282)P41 fyy_Embed_9.png 图10-9 程序ex10_3_2运行结果相关知识 10.3 结构体指针 图10-10 指向结构体类型的指针 1.指向结构体变量的指针(1)结构体变量.成员名(2)(*结构体指针).成员名(3)结构体指针(成员名 10.3 结构体指针 图10-11 指向结构体数组的指针 2.指向结构体数组的
原创力文档

文档评论(0)