方法一:算式交换
int a = 10,b = 12;
a = b-a;//a = 2
b = b-a;//b = 12-2 = 10,即原来a的值
a = a+b;//a=2+10=12,即原来b的值
方法二:异或运算
异或运算常见于密码学中。
eg:
int a = 10,b = 12; //a=1010,b=1100
a = a^b;//a = 1010^1100 = 0110
b = a^b;//b = 0110 ^ 1100 = 1010,即原来a的值
a = a^b;//a = 0110 ^ 1010 = 1100,即原来b的值