c语言结构体指针
时间: 2023-07-09 21:04:05 浏览: 73
在C语言中,结构体是一种自定义的数据类型,它可以包含多个不同类型的数据成员。结构体指针是指向结构体变量的指针,它可以访问结构体变量中的各个成员。
定义结构体指针的方法如下:
```c
struct person {
char name[20];
int age;
float height;
};
struct person *p; // 定义一个指向结构体 person 的指针变量 p
```
上面的代码定义了一个名为 person 的结构体,然后定义了一个指向这个结构体的指针变量 p。如果要使用这个指针变量访问结构体中的成员,可以使用箭头运算符(->)来代替点运算符(.):
```c
p->age = 22; // 设置结构体成员 age 的值为 22
printf("Name: %s, Age: %d, Height: %f", p->name, p->age, p->height); // 输出结构体成员的值
```
上面的代码利用指针变量 p 访问了结构体 person 中的成员,并输出了它们的值。需要注意的是,在访问结构体指针成员时,要先通过指针运算符(*)取出指针所指向的结构体变量,然后再使用点运算符(.)来访问结构体成员:
```c
(*p).age = 22; // 设置结构体成员 age 的值为 22
printf("Name: %s, Age: %d, Height: %f", (*p).name, (*p).age, (*p).height); // 输出结构体成员的值
```
上面的代码和第一个例子是等价的。