结构体数组函数的调用
时间: 2023-12-03 19:03:44 浏览: 32
结构体数组函数的调用方式有两种,分别是指针数组和数组名传递。
1. 指针数组传递方式:
```c
typedef struct {
char name[20];
int num;
float score;
} stu;
void fun(char *name, float *score, stu *p) {
strcpy(p->name, name);
p->score = *score;
}
int main() {
stu s[3] = {{"wang", 1, 30.54}, {"liu", 2, 36.5}, {"li", 3, 40.6}};
stu *p[3];
int i;
for (i = 0; i < 3; i++) {
p[i] = &s[i];
}
char name[] = "zhang";
float score = 99.9;
fun(name, &score, p[1]);
printf("name: %s, score: %.2f\n", s[1].name, s[1].score);
return 0;
}
```
2. 数组名传递方式:
```c
typedef struct {
char name[20];
int num;
float score;
} stu;
void fun(stu a[]) {
a[0].num = 3;
}
int main() {
stu s[3] = {{"wang", 1, 30.54}, {"liu", 2, 36.5}, {"li", 3, 40.6}};
printf("before change: %d\n", s[0].num);
fun(s);
printf("after change: %d\n", s[0].num);
return 0;
}
```