我正在编写一个交换指针的函数,但是我想不通为什么它不起作用。当我在swap函数中打印出r和s时,这些值已经被交换了,这让我相信我操作的是一份副本,但我不理解为什么因为我通过p和q的引用传递。
void swap(int *r, int *s)
{
int *pSwap = r;
r = s;
s = pSwap;
return;
}
int main()
{
int p = 7;
int q = 9;
swap(&p, &q);
cout << "p = " << p << "q= " << q << endl;
return 0;
}
输出:p = 7,q = 9
std::swap(p, q);
。或者,如果这个提议真的被采纳了,将来可以使用p :=: q;
。 - chris