怎么将结构体数组传入函数
时间: 2024-06-13 22:09:01 浏览: 96
可以将结构体数组作为函数参数传递,方法与传递普通数组类似。下面是一个示例代码:
```c
#include <stdio.h>
// 定义结构体
struct transaction {
char product[20];
float price;
};
// 定义函数,参数为结构体数组和数组长度
void print_info(struct transaction trans[], int len) {
for (int i = 0; i < len; i++) {
printf("%s %.2f\n", trans[i].product, trans[i].price);
}
}
int main() {
// 定义结构体数组
struct transaction trans[3] = {
{"apple", 2.5},
{"banana", 3.2},
{"orange", 4.1}
};
// 调用函数
print_info(trans, 3);
return 0;
}
```
上述代码中,我们定义了一个结构体数组`trans`,并将其作为参数传递给函数`print_info`。在函数中,我们使用下标引用的方式访问结构体数组中的元素,并输出其内容。
相关问题
结构体数组传入函数
在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`来访问每个学生的姓名和分数。
结构体数组作为函数参数传递时,可以避免结构体数组的复制,提高程序效率。同时,对结构体数组的修改也会在函数调用后保持有效。
结构体数组传入函数正确的实例
好的,下面是一个结构体数组传入函数的示例代码:
```c
#include <stdio.h>
// 定义结构体
struct Student {
char name[20];
int age;
float score;
};
// 定义函数,形参为结构体数组的指针和数组长度
void printStudents(struct Student *students, int len) {
for (int i = 0; i < len; i++) {
printf("name: %s, age: %d, score: %.1f\n", students[i].name, students[i].age, students[i].score);
}
}
int main() {
// 定义结构体数组
struct Student students[3] = {
{"Tom", 18, 89.5},
{"Jerry", 19, 78.0},
{"Mike", 20, 92.5}
};
// 调用函数,传入结构体数组的指针和数组长度
printStudents(students, 3);
return 0;
}
```
在这个示例中,我们定义了一个结构体 `Student`,包含学生的姓名、年龄和成绩。然后我们在 `main` 函数中定义了一个包含三个学生信息的结构体数组 `students`。接着我们通过调用函数 `printStudents` 将结构体数组的指针和数组长度传入函数中,函数中使用指针方式来访问结构体数组中的元素,最后输出学生的信息。
需要注意的是,在传递结构体数组时,可以直接传递数组名,因为数组名代表了数组的首地址,也就是结构体数组的指针。因此,在函数声明中,可以将结构体数组的形参声明为结构体指针类型。
阅读全文