结构体数组初始化的方式有哪些
时间: 2024-09-25 18:05:18 浏览: 44
在C语言中,结构体数组的初始化有多种方式:
1. **显式初始化**:
当定义结构体数组时,可以直接为每个结构体成员分配初始值,如:
```c
struct Student {
char name[20];
int age;
};
struct Student students[2] = {
{"Alice", 18},
{"Bob", 20} // 这里是两个完全初始化的结构体实例
};
```
2. **部分初始化**:
只为部分成员提供初始值也是允许的,其他成员默认为零填充或其类型的默认值:
```c
struct Student students[2] = {
{name: "Alice", age: 18}, // 注意这里name前不需要加"."
};
students[1].age = 20; // 另外一个结构体只初始化了一个成员
```
3. **使用循环或函数**:
通过循环或自定义函数批量初始化整个数组:
```c
void initStudent(struct Student* arr, int count, const char* names[], int ages[]) {
for (int i = 0; i < count; i++) {
arr[i].name = names[i];
arr[i].age = ages[i];
}
}
// 然后调用这个函数
struct Student students[2];
char names[] = {"Alice", "Bob"};
int ages[] = {18, 20};
initStudent(students, 2, names, ages);
```
以上就是结构体数组常见的几种初始化方式。
阅读全文