c语言如何传递指针里面的成员变量
时间: 2023-08-07 07:06:45 浏览: 83
指针变量作为函数的参数-C语言指针学习
在C语言中,传递指针里面的成员变量可以使用“指向结构体的指针”或“结构体变量的地址”来实现。
例如,我们有如下的结构体定义:
```
typedef struct {
int x;
int y;
} Point;
```
我们定义了一个名为`Point`的结构体,它包含了两个成员变量`x`和`y`。
如果我们要传递`Point`的`x`成员变量,可以使用以下两种方式:
1. 使用指向结构体的指针
```
void print_x(Point *p) {
printf("x = %d", p->x);
}
int main() {
Point p = {1, 2};
print_x(&p);
return 0;
}
```
在上面的例子中,我们定义了一个函数`print_x`,它接受一个指向`Point`结构体的指针`Point *p`,并使用箭头符号`->`来访问`x`成员变量。在`main`函数中,我们定义了一个`Point`结构体变量`p`,并将其地址作为参数传递给`print_x`函数。
2. 使用结构体变量的地址
```
void print_x(Point p) {
printf("x = %d", p.x);
}
int main() {
Point p = {1, 2};
print_x(p);
return 0;
}
```
在上面的例子中,我们定义了一个函数`print_x`,它接受一个`Point`结构体变量`Point p`,并使用点符号`.`来访问`x`成员变量。在`main`函数中,我们定义了一个`Point`结构体变量`p`,并将其作为参数传递给`print_x`函数。
需要注意的是,在第二种方式中,我们传递的是结构体变量的地址而不是指向结构体的指针。函数中使用的是点符号`.`而不是箭头符号`->`。
阅读全文