输出打印相同的值 - 8; 我无法理解为什么* p = 15不会修改指针值?
void foo(int *p) {
int q = 19;
p = &q;
*p = 15;
}
int main() {
int x = 8;
int *y = &x;
foo(y);
cout << x << " " << *y << endl;
cin.get();
}
答案 0 :(得分:1)
在执行函数
中的follow指令时,您已更改q的地址p = &q
答案 1 :(得分:0)
它 修改指向的值,但是当它执行此操作时,指针指向q
中的变量foo
,而不是变量{{1}在x
中(保持不变)。
这个难题的另一部分是,那时,有问题的指针是原始指针的副本。 main
中的p
与foo
中的y
之间没有任何关系,除了main
以p
&#开始生命39; s值。