【发布时间】:2015-03-31 03:40:06
【问题描述】:
我有这个功能:
void change(int **x, int **y){
x = y;
}
int main(void){
int x = 10 , y = 15;
int *p = &x;
int *q = &y;
change(&p, &q);
printf("%d %d", x, y);
return 0;
}
它仍然输出相同的值。
为什么y没有分配到x上?
【问题讨论】:
-
您发送的是 p 和 q 的地址,而不是 x 和 y。改用
void change(int *x, int *y)和*x = *y而不是x = y -
您好,感谢您的回复,但我只是想问一下.. 我知道我正在传递地址,但该地址也指向一些有价值的地址...该值是否应该与指针?
-
您必须取消对指针的引用才能获得该值。
-
你可以保留你的代码并将
x = y更改为**x = **y如果你喜欢 -
@NoobProgrammer 您找到问题的答案了吗?如果是这样,您应该考虑将最适合您的答案标记为已接受。