我在 C++ 中有这段代码:
#include
using namespace std;
void byRefCPointerByValue (int *x, int *y)
{
int b = 10;
int *aux = x;
x = y;
y = aux;
}
int main ()
{
int a = 1;
int b = 2;
int *x = &a;
int *y = &b;
byRefCPointerByValue(x,y);
cout << *x << endl;
cout << *y << endl;
return 0;
}
我知道,在 main 函数中, x 和 y 拥有一些地址。调用函数时,参数仍然是地址,而不是值。在函数内部,参数 *x 和 *y 保存实际值,分别为 1 2. 函数执行地址之间的交换是否正确?为什么调用这个函数后 x 仍然是 1 而 x 仍然是 2?