1. 程式人生 > >如何將a、b的值進行交換,並且不使用任何中間變數?

如何將a、b的值進行交換,並且不使用任何中間變數?

可以採用a、b之間的加減運算來實現:

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

這樣做的缺點是如果a、b是比較大的兩個數,進行相加求和時就會超界。

用異或(位運算子^,也即互斥,對應位只有一個為1時結果為1,否則為0)則不用擔心越界問題:

a = a^b;  
b = a^b;  
a = a^b;

注: 

    摘自《程式設計師面試寶典》