我再百度翻译中看到有3中方法:
1、加减法:该方法可以交换整型和浮点型数值的变量,但在处理浮点型的时候有可能出现精度的损失
a = a + b;
b = a - b;
a = a - b;
2、异或法:可以完成对整型变量的交换,对于浮点型变量它无法完成交换。
a = a^b;
b = a^b;
a = a^b;
3、乘除法:可以处理整型和浮点型变量,但在处理浮点型变量时也存在精度损失问题。而且乘除法比加减法要多一条约束:b必不为0。
a = a * b
b = a / b
a = a / b
而传统的方法为:
t = a;
a = b;
b = t;
但是我个人建议使用传统的方法
因为传统的方法效率更高:
传统方法运行时间=拷贝3次
无中间变量方法运行时间=运算3次+拷贝3次
(上述方法都必须按先后顺序执行,不能并行)