指针和结构体的代码和注释
时间: 2024-05-03 16:19:26 浏览: 122
指针和结构体在C语言中是非常重要的概念,以下是一个简单的例子来说明它们的用法。
```c
#include <stdio.h>
// 定义一个结构体
struct Student {
char name[50];
int age;
float gpa;
};
int main() {
// 定义一个结构体变量s
struct Student s;
// 定义一个指向结构体的指针变量p
struct Student *p;
// p指向结构体变量s
p = &s;
// 使用结构体变量直接赋值
s.age = 18;
s.gpa = 3.8;
strcpy(s.name, "Tom");
// 使用指针变量通过 -> 操作符给结构体变量赋值
p->age = 19;
p->gpa = 4.0;
strcpy(p->name, "Jerry");
// 输出结构体变量的值
printf("Name: %s\n", s.name);
printf("Age: %d\n", s.age);
printf("GPA: %.2f\n", s.gpa);
// 输出指针变量所指向的结构体变量的值
printf("Name: %s\n", p->name);
printf("Age: %d\n", p->age);
printf("GPA: %.2f\n", p->gpa);
return 0;
}
```
注释如下:
1. 定义了一个名为 `Student` 的结构体,包含了学生的姓名、年龄和成绩。
2. 在 `main` 函数中,先定义了一个 `Student` 类型的变量 `s`,再定义了一个指向 `Student` 类型的指针变量 `p`。
3. 将 `p` 指向 `s`,即 `p = &s`。
4. 使用点操作符(`.`)给结构体变量 `s` 的成员赋值,使用箭头操作符(`->`)给指针变量 `p` 所指向的结构体变量的成员赋值。
5. 输出结构体变量 `s` 和指针变量 `p` 所指向的结构体变量的成员值。
需要注意的是,使用指针变量操作结构体成员时,要使用箭头操作符(`->`),而不是点操作符(`.`)。这是因为指针变量本身并不包含任何数据,它只是一个地址,需要通过箭头操作符来访问所指向的结构体变量的成员。
阅读全文