不使用临时变量的方法参考代码第一个。
需要注意的是,"^"在C++中代表二进制的异或符号,比如3^5,得到的结果是6,因为5的二进制是101、3的二进制是011。计算过程如下:
101
011
——————
110
也就是按位进行0和1的异或运算,得到二进制的110,也就是十进制的6。
"^"可以用来交换两个变量的值。
#include<iostream>
using namespace std;
int main()
{
int x = 3,y = 5;
cout << "x=" << x << " y=" << y << "\n\n"; //确认原始数据
y = x ^ y;
x = x ^ y;
y = x ^ y;
cout << "x=" << x << " y=" << y << "\n\n";
swap(x,y);
cout << "x=" << x << " y=" << y << "\n\n";
int s = x;
x = y;
y = s;
cout << "x=" << x << " y=" << y << "\n\n";
return 0;
}
运行结果:
x=3 y=5
x=5 y=3
x=3 y=5
x=5 y=3