c语言结构体指针传参
时间: 2023-08-19 21:08:29 浏览: 286
在C语言中,可以通过结构体指针来传递和操作结构体。结构体指针可以指向一个已定义的结构体变量,通过指针可以修改结构体的成员值,还可以将结构体指针作为参数传递给函数。
以下是一个示例代码,演示如何使用结构体指针进行参数传递:
```c
#include <stdio.h>
// 定义一个结构体
struct Point {
int x;
int y;
};
// 函数接受结构体指针作为参数,并修改结构体成员的值
void modifyPoint(struct Point* p) {
p->x = 10;
p->y = 20;
}
int main() {
struct Point p; // 定义一个结构体变量
struct Point* ptr = &p; // 定义一个指向结构体的指针,并将其指向结构体变量
// 通过指针访问和修改结构体成员的值
ptr->x = 5;
ptr->y = 15;
printf("Before modification: x = %d, y = %d\n", p.x, p.y);
// 调用函数传递结构体指针,并修改结构体成员的值
modifyPoint(ptr);
printf("After modification: x = %d, y = %d\n", p.x, p.y);
return 0;
}
```
运行以上代码,输出结果为:
```
Before modification: x = 5, y = 15
After modification: x = 10, y = 20
```
在上面的示例中,我们定义了一个结构体`Point`,有两个整型成员`x`和`y`。在`main`函数中,我们创建了一个结构体变量`p`,并通过指针`ptr`将其地址赋值给指针。然后我们通过指针访问和修改结构体成员的值。接下来,我们调用函数`modifyPoint`,将结构体指针作为参数传递,并在函数中修改结构体成员的值。最后,我们输出修改后的结构体成员值,可以看到结构体的成员已经被成功修改。
阅读全文