#include <iostream>
using namespace std;
void main(){
int a=2;
int b=3;
/* //方法1
a=a+b;
b=a-b;
a=a-b;
*/
/* //方法2
a=a^b;
b=b^a;
a=a^b;
*/
cout<<"a="<<a<<",b="<<b<<endl;
system("pause");
}
第一种方法:
a=a+b; b=a-b; 此时b的值已经赋成a的值了即a,b值相同。
由于 a=a+b; 则此时a的值减去原来a的值,便得到b的值,所以:b=a-b;
第二种方法:
a=a ^ b; b=b ^a; 则 b=b ^ a ^b ; b= b ^ b ^ a; b= 0 ^ a= a;
又 a=a ^ b; a= (a ^ b) ^ (b ^ a ^ b)=a ^ a ^ b ^ b ^ b=0 ^ 0 ^ b =b;