在c++中,如果需要交换两个变量的值,通常的做法是利用一个中间变量暂存其中一个变量的值。
如果不用中间变量,有两种方法,一是通过四则运算,二是通过异或运算,异或运算可以通过逻辑推导。
具体如下:
#include<iostream>
using namespace std;
int main()
{
//通过加减运算
int a = 5;
int b = 6;
a = a + b;
b = 2*b - a;//b = b-a
a = (a + b)/2;
b = a-b;
cout << "加减运算方式:\na:" << a << " b:" << b << endl;
//通过异或运算
a = 5;
b = 6;
a = a^b;
b = b^a;
a = a^b;
cout << "异或运算方式:\na:" << a << " b:" << b << endl;
return 0;
}
结果: