指向结构体的指针数组
时间: 2023-11-08 19:54:48 浏览: 55
指向结构体的指针数组是一个数组,其中的每个元素都是指向结构体的指针。通过这个指针数组,可以方便地对多个结构体进行操作。例如,可以通过指针数组的元素来访问结构体的成员变量。
下面是一个示例代码,展示了如何定义和使用指向结构体的指针数组:
```
struct Student {
int num;
char name[10];
char sex;
double height;
};
int main() {
// 定义一个包含3个元素的指向Student结构体的指针数组
struct Student *p[3];
// 创建3个Student结构体,并将指针存储到指针数组中
struct Student stu1 = {1, "Tom", 'M', 175.5};
struct Student stu2 = {2, "Alice", 'F', 160.0};
struct Student stu3 = {3, "Bob", 'M', 180.0};
p[0] = &stu1;
p[1] = &stu2;
p[2] = &stu3;
// 通过指针数组的元素访问结构体的成员变量
printf("学生1的姓名:%s\n", p[0]->name);
printf("学生2的性别:%c\n", p[1]->sex);
printf("学生3的身高:%.1f\n", p[2]->height);
return 0;
}
```
相关问题
结构体指针数组
结构体指针数组是由结构体指针组成的数组。每个元素都是一个指向结构体的指针,指向的结构体具有相同的成员变量,但是每个元素的成员变量值可以不同。可以通过数组下标访问每个元素,也可以通过指针的方式访问每个元素的成员变量。例如,定义一个结构体指针数组:
```
struct student {
char name[20];
int age;
};
struct student *s[3];
```
这个结构体指针数组包含3个元素,每个元素都是指向struct student类型的指针。可以通过如下方式为每个元素赋值:
```
struct student stu1 = {"Tom", 18};
struct student stu2 = {"Jerry", 19};
struct student stu3 = {"Mike", 20};
s[0] = &stu1;
s[1] = &stu2;
s[2] = &stu3;
```
这样,s数组就包含了3个指向不同struct student类型的指针,可以通过指针访问每个元素的成员变量。例如,可以通过如下方式访问s数组的第一个元素的name成员变量:
```
printf("%s", s[0]->name);
```
c语言结构体指针数组
结构体指针数组是一个数组,每个元素都是指向结构体的指针。可以通过结构体指针数组来管理多个结构体对象。
下面是一个示例代码:
```c
#include <stdio.h>
// 定义一个结构体
struct Person {
char name[20];
int age;
};
int main() {
// 定义结构体指针数组
struct Person* people[3];
// 创建结构体对象并赋值
struct Person p1 = {"Alice", 25};
struct Person p2 = {"Bob", 30};
struct Person p3 = {"Charlie", 35};
// 将结构体指针存储到数组中
people[0] = &p1;
people[1] = &p2;
people[2] = &p3;
// 访问结构体指针数组中的元素
for (int i = 0; i < 3; i++) {
printf("Name: %s, Age: %d\n", people[i]->name, people[i]->age);
}
return 0;
}
```
在上述代码中,我们定义了一个结构体 `Person`,包含了姓名和年龄两个字段。然后通过创建结构体对象,并将它们的地址存储到结构体指针数组 `people` 中。最后,通过遍历结构体指针数组,我们可以访问每个结构体对象的成员。
输出结果为:
```
Name: Alice, Age: 25
Name: Bob, Age: 30
Name: Charlie, Age: 35
```
这样,我们就使用结构体指针数组成功地管理了多个结构体对象。