【C語言】互換兩個數的值的三種方法
阿新 • • 發佈:2019-01-02
我在第一次C語言學習的過程中,對於C語言的認識不夠深刻,我覺得這種解法已經非常厲害。畢竟能將簡單的兩個數的交換用計算機的邏輯編寫出來,並實現正確執行......
int main()
{
int num1 = 10;
int num2 = 20;
int tmp = 0;
tmp = num1;
num1 = num2;
num2 = tmp;
return 0;
}
然而,通過這兩天的學習,我發現前一種方法在實踐中並不完美。這段程式碼在執行的過程中會建立一個臨時變數,多佔了一塊記憶體空間。對記憶體的利用很浪費。
下面是我瞭解到的一種新的演算法:
int main()
{
int num1 = 10;
int num2 = 20;
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;
return 0;
}
這不是結束,當我接觸到位操作時,這裡我通過學習瞭解到一種更加厲害的演算法。
int main() { int num1 = 10; int num2 = 20; num1 = num1^num2; num2 = num1^num2; num1 = num1^num2; return 0; }
同樣是兩個數值的交換,C語言通過演算法的不同實現了同一種功能,很棒的一題多解。C的魅力確實不只是他能實現任意的功能那麼簡單。