有意思的两数交换技巧
③方法三(利用异或等价代换):
int a=3,b=7;
a^=b^=a^=b;
实际上就是
a = a^b;
b = a^b;
a = a^b;
这个结果是正确的。
④方法四(和方法二类似,但是实际不同,利用了临时隐含中间变量):
a = (a+b)-(b=a);
在vs2008中,这么写得不到正确结果, 很明显,这个表达式先进行了 (b=a)的赋值运算。
面试的时候炫技巧,也许会弄巧成拙?面试官也许不喜欢你这样的代码风格呢?
补充一个
a=a*b;
b=a/b;
a=a/b;
这个很明显不适合适用范围小了许多,32位机中,最大不能是2的16次方