结构体数组能否相互赋值
时间: 2023-11-11 10:17:57 浏览: 188
结构体中数组成员赋值
5星 · 资源好评率100%
结构体数组是由多个结构体元素组成的,每个元素都有自己的成员变量。在C语言中,结构体数组之间是不能直接进行赋值操作的。
如果想要实现结构体数组之间的赋值,可以通过遍历源结构体数组,并逐个赋值给目标结构体数组的相应元素。示例如下:
```c
#include <stdio.h>
typedef struct {
int id;
char name[20];
} Student;
void copyArray(Student src[], Student dest[], int size) {
for (int i = 0; i < size; i++) {
dest[i] = src[i];
}
}
int main() {
Student students1[3] = {
{1, "Tom"},
{2, "Jerry"},
{3, "Bob"}
};
Student students2[3];
copyArray(students1, students2, 3);
for (int i = 0; i < 3; i++) {
printf("Student %d: ID = %d, Name = %s\n", i+1, students2[i].id, students2[i].name);
}
return 0;
}
```
在上述示例中,`copyArray` 函数用来将源结构体数组 `src` 的元素逐个赋值给目标结构体数组 `dest` 的相应元素。然后在 `main` 函数中,我们定义了两个结构体数组 `students1` 和 `students2`,并通过调用 `copyArray` 函数将 `students1` 中的元素复制给 `students2`,最后输出 `students2` 中的元素。
需要注意的是,结构体数组的赋值是逐个元素进行的,因此两个结构体数组的元素类型和顺序应该保持一致。
阅读全文