x += y; y = x - y; x -= y;的功能是?
x = x + y;//此时x = x + y y = x - y;//此时y = (x + y ) - y = x x = x - y;//此时x = (x + y ) - (x) = y /*所以这段代码交换了两者的位置,这种方法和使用中间变量本质是一样的。 */ int temp, x, y, temp2; temp = x + y; temp2 = temp -y;//y = x x = temp - temp2;// x = y
a=a^b; b=b^a; a=a^b; /* a1=a^b b=b^a1=b^a^b=a //此时a1=a^b a=a1^b=a^b^a=b //这种方法虽然看起来很NB,但是不推荐这么用,了解就行。这种代码易读性不强,可能只会存在于面试笔试中,个人感觉不会大量使用。 谢谢各位