c语言函数如何传入结构体
时间: 2024-04-01 19:28:57 浏览: 94
在C语言中,可以通过值传递或指针传递的方式将结构体传递给函数。下面是两种常见的传递结构体给函数的方式:
1. 值传递:
当使用值传递方式时,函数会创建一个结构体的副本,并对副本进行操作。这种方式适用于结构体较小且不需要修改原始结构体的情况。
示例代码如下:
```c
#include <stdio.h>
// 定义一个结构体
struct Person {
char name[20];
int age;
};
// 函数接受结构体作为参数
void printPerson(struct Person p) {
printf("Name: %s\n", p.name);
printf("Age: %d\n", p.age);
}
int main() {
struct Person person = {"John", 25};
printPerson(person);
return 0;
}
```
输出结果:
```
Name: John
Age: 25
```
2. 指针传递:
当使用指针传递方式时,函数接受一个指向结构体的指针作为参数。通过指针,函数可以直接修改原始结构体的内容。
示例代码如下:
```c
#include <stdio.h>
// 定义一个结构体
struct Person {
char name[20];
int age;
};
// 函数接受结构体指针作为参数
void changeAge(struct Person *p, int newAge) {
p->age = newAge;
}
int main() {
struct Person person = {"John", 25};
changeAge(&person, 30);
printf("New Age: %d\n", person.age);
return 0;
}
```
输出结果:
```
New Age: 30
```
阅读全文