包含指针和结构体的源代码
时间: 2023-11-28 18:06:05 浏览: 25
以下是一个简单的 C 语言示例程序,其中包含指针和结构体:
```
#include <stdio.h>
struct student {
char name[20];
int age;
float score;
};
int main() {
struct student s1 = {"John", 18, 89.5};
struct student *ptr_s1 = &s1;
printf("Name: %s\n", ptr_s1->name);
printf("Age: %d\n", ptr_s1->age);
printf("Score: %.2f\n", ptr_s1->score);
return 0;
}
```
在上述代码中,我们定义了一个名为 `student` 的结构体,其中包含了学生的姓名、年龄和成绩。然后,在 `main()` 函数中,我们声明了一个名为 `s1` 的 `student` 结构体变量,并将其初始化为一个名为 `John`、年龄为 `18`、成绩为 `89.5` 的学生。接着,我们声明了一个名为 `ptr_s1` 的指向 `s1` 的结构体指针,并使用箭头符号(`->`)来访问结构体成员。最后,我们打印了学生的姓名、年龄和成绩。
相关问题
包含指针和结构体的源代码包括注释
以下是一个包含指针和结构体的C语言源代码,附带注释说明:
```c
#include <stdio.h>
// 定义一个结构体
struct student {
char name[50];
int age;
float score;
};
int main() {
// 定义一个结构体类型的指针变量
struct student *p;
// 定义一个结构体变量,并给其中的成员赋值
struct student s = {"John", 18, 90.5};
// 将结构体变量的地址赋值给指针变量
p = &s;
// 使用指针访问结构体成员,并输出其值
printf("Name: %s\n", p->name);
printf("Age: %d\n", p->age);
printf("Score: %.2f\n", p->score);
return 0;
}
```
注释解释:
- 第4行:定义了一个结构体类型,名为`student`,该结构体包含3个成员,分别为`name`、`age`和`score`。
- 第7行:`main()`函数入口。
- 第10行:定义了一个指向`student`类型的指针变量,名为`p`。
- 第13行:定义了一个`student`类型的结构体变量,名为`s`,并初始化其中的成员。
- 第16行:将结构体`s`的地址赋值给指针变量`p`。
- 第19行:使用指针访问结构体成员`name`,并输出其值。
- 第20行:使用指针访问结构体成员`age`,并输出其值。
- 第21行:使用指针访问结构体成员`score`,并输出其值。
该代码演示了如何定义一个结构体类型,如何定义指向该结构体类型的指针变量,以及如何使用指针访问结构体成员。同时也说明了指针和结构体在C语言中的常见用法。
包含指针和结构体的源代码及注释
好的,这里是一个简单的示例程序,包含指针和结构体的源代码及注释:
```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`。