c语言函数传入结构体
时间: 2023-07-09 09:10:41 浏览: 205
C++结构体作为函数参数传参的实例代码
在C语言中,可以通过以下两种方式传入结构体:
1. 传递结构体的指针:将结构体的地址传递给函数,函数中通过指针访问结构体的成员变量。
例如,定义一个结构体:
```
struct student {
char name[20];
int age;
float score;
};
```
定义一个函数,通过指针访问结构体成员:
```
void printStudent(struct student *s) {
printf("Name: %s\n", s->name);
printf("Age: %d\n", s->age);
printf("Score: %.2f\n", s->score);
}
```
在主函数中创建结构体并传递指针:
```
int main() {
struct student s1 = {"Tom", 18, 90.5};
printStudent(&s1);
return 0;
}
```
2. 传递结构体变量本身:将整个结构体作为参数传递给函数,函数中直接访问结构体的成员变量。
例如,定义一个结构体和一个函数:
```
struct student {
char name[20];
int age;
float score;
};
void printStudent(struct student s) {
printf("Name: %s\n", s.name);
printf("Age: %d\n", s.age);
printf("Score: %.2f\n", s.score);
}
```
在主函数中创建结构体并传递变量:
```
int main() {
struct student s1 = {"Tom", 18, 90.5};
printStudent(s1);
return 0;
}
```
需要注意的是,如果结构体比较大,或者在函数中需要修改结构体的成员变量,建议使用第一种方式传递结构体的指针。
阅读全文