有意思的两数交换技巧

③方法三(利用异或等价代换):
    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次方

posted @ 2017-04-06 10:43  dfdqzp  阅读(125)  评论(0编辑  收藏  举报