结构体如何通过下标访问元素
时间: 2024-03-16 18:45:59 浏览: 22
在 C 语言中,结构体是不能通过下标访问元素的。如果你想要通过下标访问结构体元素,可以考虑使用数组或指针数组来模拟结构体。例如,你可以使用指针数组来模拟一个结构体数组:
```c
#include <stdio.h>
struct student {
char name[20];
int age;
};
int main() {
struct student s[3] = {
{"Tom", 18},
{"Jerry", 19},
{"Bob", 20}
};
int i;
for (i = 0; i < 3; i++) {
printf("s[%d].name = %s, s[%d].age = %d\n", i, s[i].name, i, s[i].age);
}
return 0;
}
```
在上面的例子中,我们定义了一个结构体 `student`,并定义了一个结构体数组 `s`。我们可以使用下标访问结构体数组中的元素,然后通过成员运算符 `.` 来访问结构体中的成员。
另外一种方法是使用指针数组来模拟结构体的下标访问:
```c
#include <stdio.h>
struct student {
char name[20];
int age;
};
int main() {
struct student s[3] = {
{"Tom", 18},
{"Jerry", 19},
{"Bob", 20}
};
struct student *p[3];
int i;
for (i = 0; i < 3; i++) {
p[i] = &s[i];
}
for (i = 0; i < 3; i++) {
printf("p[%d]->name = %s, p[%d]->age = %d\n", i, p[i]->name, i, p[i]->age);
}
return 0;
}
```
在这个例子中,我们首先定义了一个结构体数组 `s`,然后定义了一个指针数组 `p`,每个指针指向对应的结构体元素。我们可以使用 `p[i]->name` 和 `p[i]->age` 来访问结构体元素中的成员。