最近在論壇裏又看到一個很熟悉的問題:不使用中間變量交換兩個變量的值。網上流傳的大概有兩種方法,在這裏總結一下。
【方法一】
假設須要交換的兩個變量都是整型,變量名分別爲a和b。
a = a^b;
b = a^b;
a = a^b;
評價:該方法只能針對整形變量進行操做。
【方法二】
假設須要交換的兩個變量名分別爲a和b。
a=a+b;
b=a-b;
a=a-b;
評價:該方法雖然能夠用於浮點數,可是在變量值比較大的狀況下可能會產生溢出。
後記:其實使用中間變量交換兩個數並不會增長程序多少負擔。相反,在實際的項目開發中,若是使用上述技巧交換兩個變量的值,會下降程序的可讀性,弊大於利!因此,不建議在實際開發中使用相似的技巧。
spa