在子函数中更改主函数结构体
时间: 2023-11-08 20:11:26 浏览: 69
在C语言中,如果要在一个子函数中修改主函数中定义的结构体变量,可以使用指针作为函数参数。具体实现方法如下:
1. 在主函数中定义一个结构体变量,并将其地址传递给子函数。
```
#include <stdio.h>
struct Person {
char name[20];
int age;
};
void changePerson(struct Person *p) {
strcpy(p->name, "Tom");
p->age = 25;
}
int main() {
struct Person person1 = {"Jerry", 20};
changePerson(&person1);
printf("Name: %s\n", person1.name);
printf("Age: %d\n", person1.age);
return 0;
}
```
2. 在子函数中使用指针来修改结构体变量的值。
```
void changePerson(struct Person *p) {
strcpy(p->name, "Tom");
p->age = 25;
}
```
在这个例子中,我们定义了一个结构体变量 `person1`,并将其地址传递给了 `changePerson` 函数。在 `changePerson` 函数中,我们使用指针 `p` 来访问结构体变量的成员并修改它们的值。最后,在主函数中打印修改后的结构体变量的值。
需要注意的是,在子函数中修改结构体变量的值时,要使用指针来访问结构体成员,并使用箭头运算符 `->`。这是因为指针指向的是结构体变量的地址,而不是结构体变量本身。
阅读全文