用结构体数组作函数参数
时间: 2023-08-13 22:12:38 浏览: 103
结构体数组可以作为函数参数传递,方式与普通数组类似。下面给出一个例子:
```c
#include <stdio.h>
struct Student {
char name[20];
int age;
};
void printStudents(struct Student students[], int n) {
for (int i = 0; i < n; i++) {
printf("Name: %s, Age: %d\n", students[i].name, students[i].age);
}
}
int main() {
struct Student students[3] = {{"Alice", 20}, {"Bob", 21}, {"Charlie", 22}};
printStudents(students, 3);
return 0;
}
```
在上面的例子中,定义了一个结构体类型 `Student`,包含了学生的姓名和年龄两个字段。定义了一个函数 `printStudents`,接受一个结构体类型为 `Student` 的数组 `students` 和数组长度 `n`,并打印出每个学生的姓名和年龄。在 `main` 函数中,创建了一个包含 3 个学生信息的结构体数组 `students`,然后将该数组和数组长度作为参数传递给 `printStudents` 函数进行打印。
需要注意的是,在函数参数中定义结构体数组时,可以省略数组大小,但不能省略数组名称。因此,函数声明应该写成 `void printStudents(struct Student students[], int n)`,而不是 `void printStudents(struct Student[], int n)`。
阅读全文