包含指针和结构体的源代码及注释
时间: 2023-11-28 21:05:51 浏览: 31
好的,这里是一个简单的示例程序,包含指针和结构体的源代码及注释:
```c
#include <stdio.h>
// 定义一个结构体类型,包含两个成员变量
struct Person {
char name[20];
int age;
};
int main() {
// 定义一个结构体变量 p1,并初始化其成员变量
struct Person p1 = {"Alice", 20};
// 定义一个指向结构体的指针变量 p2,并将其指向 p1
struct Person *p2 = &p1;
// 输出结构体变量 p1 的成员变量值
printf("p1: name=%s, age=%d\n", p1.name, p1.age);
// 输出结构体指针变量 p2 的成员变量值
printf("p2: name=%s, age=%d\n", p2->name, p2->age);
// 修改结构体指针变量 p2 的成员变量值
p2->age = 21;
// 再次输出结构体变量 p1 的成员变量值
printf("p1: name=%s, age=%d\n", p1.name, p1.age);
// 再次输出结构体指针变量 p2 的成员变量值
printf("p2: name=%s, age=%d\n", p2->name, p2->age);
return 0;
}
```
注释:
- 第 4 行:定义了一个名为 `Person` 的结构体类型,包含两个成员变量 `name` 和 `age`。
- 第 7 行:程序的入口函数 `main`。
- 第 10 行:定义了一个名为 `p1` 的结构体变量,并初始化其成员变量。
- 第 13 行:定义了一个名为 `p2` 的指向 `Person` 结构体的指针变量,并将其指向 `p1`。
- 第 16 行:输出结构体变量 `p1` 的成员变量 `name` 和 `age`。
- 第 19 行:输出结构体指针变量 `p2` 的成员变量 `name` 和 `age`。这里使用了 `->` 运算符来访问指向结构体的指针的成员变量。
- 第 22 行:修改结构体指针变量 `p2` 的成员变量 `age`。
- 第 25 行:再次输出结构体变量 `p1` 的成员变量 `name` 和 `age`。可以看到,由于 `p2` 指向 `p1`,因此修改 `p2` 的成员变量也会影响 `p1`。
- 第 28 行:再次输出结构体指针变量 `p2` 的成员变量 `name` 和 `age`。