<分区>
我正在尝试编写一个函数,该函数将两个指针作为参数,然后使第一个指针指向第二个指针指向的对象,第二个指针指向第一个指针指向的对象。
void swap(int *x, int *y)
{
int *s;
s = x;
x = y;
y = s;
}
在主函数中,我会做类似的事情
int x, y;
swap(&x, &y);
std::cout << &x << " " << &y << std::endl;
但地址似乎没有改变。
如果相反,我取消引用指针并尝试更改值,则值会按预期交换。我想知道为什么这个函数不会改变指针指向的位置。