c语言向函数传递结构体
时间: 2023-11-08 13:25:44 浏览: 39
在 C 语言中,可以通过值传递或指针传递结构体,从而向函数传递结构体。
1. 值传递结构体
值传递结构体时,会将整个结构体的内容复制一份,传递给函数。这样做的优点是代码简单,缺点是会占用较多的内存空间。
下面是一个例子:
```
#include <stdio.h>
struct Student {
char name[20];
int age;
};
void printStudent(struct Student stu) {
printf("姓名:%s,年龄:%d\n", stu.name, stu.age);
}
int main() {
struct Student s = {"Tom", 18};
printStudent(s);
return 0;
}
```
输出结果:
```
姓名:Tom,年龄:18
```
2. 指针传递结构体
指针传递结构体时,只会将结构体的地址传递给函数,这样做的优点是占用较少的内存空间,缺点是代码稍微复杂一些。
下面是一个例子:
```
#include <stdio.h>
struct Student {
char name[20];
int age;
};
void printStudent(struct Student *pstu) {
printf("姓名:%s,年龄:%d\n", pstu->name, pstu->age);
}
int main() {
struct Student s = {"Tom", 18};
struct Student *ps = &s;
printStudent(ps);
return 0;
}
```
输出结果:
```
姓名:Tom,年龄:18
```