【技巧】不使用中間變量交換兩個變量的值

最近在論壇裏又看到一個很熟悉的問題:不使用中間變量交換兩個變量的值。網上流傳的大概有兩種方法,在這裏總結一下。

【方法一】
    假設須要交換的兩個變量都是整型,變量名分別爲a和b。
     
      a = a^b;
      b = a^b;
      a = a^b;


    評價:該方法只能針對整形變量進行操做。

【方法二】
    假設須要交換的兩個變量名分別爲
a和b。

      a=a+b;
      b=a-b;
      a=a-b;

    評價:該方法雖然能夠用於浮點數,可是在變量值比較大的狀況下可能會產生溢出。

    後記:其實使用中間變量交換兩個數並不會增長程序多少負擔。相反,在實際的項目開發中,若是使用上述技巧交換兩個變量的值,會下降程序的可讀性,弊大於利!因此,不建議在實際開發中使用相似的技巧。
spa

相關文章
相關標籤/搜索