结构体数组传入函数
时间: 2023-06-22 17:18:07 浏览: 114
mfc ActiveX 结构体数组的传递
5星 · 资源好评率100%
在C语言中,结构体数组可以通过指针传递给函数,以便函数对结构体数组进行操作。以下是一个示例:
```c
#include <stdio.h>
struct student {
char name[20];
int score;
};
void printStudents(struct student *stu, int size) {
for (int i = 0; i < size; i++) {
printf("Name: %s\n", stu[i].name);
printf("Score: %d\n", stu[i].score);
}
}
int main() {
struct student stu[3] = {
{"Tom", 80},
{"Jerry", 90},
{"Mike", 85}
};
printStudents(stu, 3);
return 0;
}
```
在这个示例中,我们定义了一个`student`结构体和一个`printStudents`函数,该函数接受一个指向`student`结构体的指针和一个表示结构体数组大小的整数。在`main`函数中,我们定义了一个包含3个`student`结构体的数组,并将其传递给`printStudents`函数。`printStudents`函数使用指针访问结构体数组中的每个元素,并打印出学生的姓名和分数。
需要注意的是,在函数中使用指针访问结构体数组时,可以使用`.`运算符或`->`运算符来访问结构体的成员变量。在上面的示例中,我们使用`stu[i].name`和`stu[i].score`来访问每个学生的姓名和分数。
结构体数组作为函数参数传递时,可以避免结构体数组的复制,提高程序效率。同时,对结构体数组的修改也会在函数调用后保持有效。
阅读全文