【发布时间】:2015-10-17 01:07:21
【问题描述】:
我是 C 新手,在使用指针时遇到了一些问题。我想将指针地址传递给另一个函数,然后将该函数中的地址传递给第三个函数。这是一个例子:
typedef struct
{
int x;
int y;
} Coordinate;
int main()
{
Coordinate location;
functA(&location);
printf("Value of x: %d\n", location.x); //prints 10
printf("Value of y: %d\n", location.y); //prints 20
}
void functA(Coordinate *location)
{
location->x = 10;
location->y = 20;
}
这是我目前拥有的代码的简化部分。假设我希望 functA 调用另一个函数,将结构中的值减少一半,我尝试这样做,但它似乎不起作用,
void functA(Coordinate *location)
{
location->x = 10;
location->y = 20;
functB(&location);
}
void functB(Coordinate *location)
{
location->x = location->x/2;
location->y = location->y/2;
}
当我希望它是 5 和 10 时,输出仍然是 x = 10 和 y = 20。
我能得到一些帮助吗?
【问题讨论】:
标签: c function pointers memory-address