c语言 结构体中的数组
时间: 2023-11-08 13:05:06 浏览: 129
C语言中的结构体可以包含数组,这是为了方便处理一组相关数据。例如:
```
struct student {
char name[20];
int scores[5];
};
```
上述结构体中包含了一个字符串变量和一个整型数组变量,可以用来存储学生的姓名和成绩。其中 `scores` 数组可以用下标访问各个元素,例如 `scores` 表示学生的第一科成绩。
注意,结构体中的数组必须指定数组大小,否则无法分配内存空间。
相关问题
c语言结构体赋值数组
在C语言中,可以使用结构体数组来存储一组结构体对象。下面是一个示例,演示如何将结构体赋值给结构体数组的元素:
```c
#include <stdio.h>
struct Person {
char name[20];
int age;
};
int main() {
struct Person people[3]; // 声明一个包含3个Person结构体的数组
// 初始化结构体数组的元素
people[0] = (struct Person){"John", 25};
people[1] = (struct Person){"Alice", 30};
people[2] = (struct Person){"Bob", 35};
// 遍历数组并打印每个人的姓名和年龄
for (int i = 0; i < 3; i++) {
printf("Person %d: Name = %s, Age = %d\n", i+1, people[i].name, people[i].age);
}
return 0;
}
```
在上述示例中,我们定义了一个名为`Person`的结构体,包含了姓名和年龄两个字段。然后,我们声明了一个包含3个`Person`结构体的数组`people`。通过将不同的结构体赋值给数组的不同元素,我们将结构体存储在数组中。最后,通过遍历数组,我们打印了每个人的姓名和年龄。
请注意,在给结构体数组元素赋值时,需要将要赋值的结构体对象用括号括起来,并在前面加上结构体类型的强制类型转换 `(struct Person)`。这是因为C语言不支持直接使用花括号初始化结构体数组元素。
C语言结构体定义数组
下面是C语言结构体定义数组的示例代码:
```c
#include <stdio.h>
// 定义结构体
struct student {
char name[20];
int age;
float score;
};
int main() {
// 定义结构体数组并初始化
struct student stu_arr[3] = {
{"Tom", 18, 90.5},
{"Jerry", 19, 88.5},
{"Marry", 20, 95.0}
};
// 遍历结构体数组并输出每个元素的成员变量
for (int i = 0; i < 3; i++) {
printf("Name: %s, Age: %d, Score: %.1f\n", stu_arr[i].name, stu_arr[i].age, stu_arr[i].score);
}
return 0;
}
```
上述代码中,我们首先定义了一个结构体`student`,包含了三个成员变量`name`、`age`和`score`。然后我们定义了一个结构体数组`stu_arr`,并在定义时对其进行了初始化。最后我们使用`for`循环遍历结构体数组,并输出每个元素的成员变量。
阅读全文