我在第一次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的魅力確實不只是他能實現任意的功能那麼簡單。