本资源主要讲解了第9章关于编译预处理中的结构体变量定义及初始化相关内容。首先,结构体是一种在C语言中用于组合不同数据类型的复合数据类型,它允许我们定义自定义的数据结构。在介绍结构体之前,先回顾了两个编译预处理的概念:宏定义和文件包含。
1. **宏定义**:宏定义是预处理器指令,用于创建一个名称,该名称代表一个文本字符串,这个过程在编译时进行简单的文本替换,但不进行语法检查。例如,通过#define标识符 字符串的形式定义宏,如计算圆面积和周长的宏,以及带参数的宏如计算长方形面积,这些宏可以在代码中多次使用,提高代码复用性。
2. **文件包含**:文件包含命令用于引入其他文件的代码,便于组织和重用代码。通过`#include <文件名>`或`#include "文件名"`的形式,将另一个文件的全部内容包含到当前文件中。
接着,主要内容围绕**结构体变量的定义和初始化**展开:
- **定义结构体变量**:
- 定义一个结构体类型后,可以直接定义多个同类型的结构体变量,如`struct student st1, st2`。
- 同时定义结构体类型和变量,如`struct student { ... } st1, st2`。
- 还可以直接定义结构体类型,然后在后续声明中初始化,如`struct student { ... } st1, st2;`。
- **结构体变量初始化**:在定义结构体变量时,可以通过花括号 `{}` 初始化成员变量,如`struct student stu1 = {"liming", {72, 87, 79}, 0}` 和 `struct student stu2 = {"wangli", {70, 80, 90}, 0}`。
- **结构体成员的访问**:使用`.`运算符可以访问结构体变量的成员,如`st1.name`、`st1.score`等。
- **结构体数组与结构体指针**:
- 结构体数组的定义有三种方式,分别对应于结构体变量定义的三种方法,它们都涉及到结构体类型的实例化。
- 结构体指针则是用于指向结构体的内存地址,提供了对结构体数据的间接访问。
这部分内容为C语言编程者深入理解数据组织和管理提供了关键概念,对于编写高效、灵活的程序至关重要。通过理解和掌握结构体及其操作,程序员可以创建更复杂的数据结构,实现更高级的数据处理功能。