只讨论两个数a b都是int型的情况, 其他类推.
通常最先学到的方法都是引入一个中间变量来完成.
int tmp;
tmp = a;
a = b;
b = tmp;
如果不要中间变量, 可以用加减法:
a = a+b;
b = a-b;
a = a-b;
//单条语句完成
a-=(b=(a+=b)-b)
原理为: x = (x+y)-y
还可以用异或运算:
a = a^b;
b = a^b;
a = a^a;
//单条语句完成
a^=(b^=(a^=b))
原理为: x^0 = x, x^x = 0 => x=x^0=x^(y^y)=(x^y)^y