我有两个整数变量 i 和 j,我想创建一个函数,将这两个变量作为参数,并使用 xor 运算符交换它们的内容。现在,如果我让函数按值获取参数,即void swap (int x , int y);
(函数体与swap
下面的函数相同),那么值会在函数内很好地交换。但是我想要的是在调用函数中交换变量的值,我使用通过引用(以及通过指针)传递参数:
void swap ( int& x , int& y )
{
x^=y^=x^=y;
cout << x<< " " << y << endl ;
}
int main ()
{
int i (1), j (2) ;
swap ( i, j ) ;
cout << i << " " << j << endl ;
}
但两种情况都没有显示正确的结果!
为什么swap
函数不交换通过引用或指针传递参数的值?