在很多情況下,程序員需要交換兩個(gè)變量的值。 在這里,我們將學(xué)習(xí)如何交換兩個(gè)整數(shù)變量的值,這可以交換任何類型的值。 變量之間的值可以通過(guò)兩種方式進(jìn)行交換:
我們已經(jīng)學(xué)會(huì)了第一種方法。 這里將學(xué)習(xí)第二種方法。雖然它看起來(lái)像一個(gè)魔法,但它只是一個(gè)小技巧。 想象一下,現(xiàn)在我們有兩個(gè)數(shù)字1和2分別存儲(chǔ)在變量a和b中 -
如果相加變量a和b,即(1 + 2)并存儲(chǔ)到a,則a將變?yōu)?code>3,b仍然為2。
現(xiàn)在從a(3)的新值中減去b(2),并將其存儲(chǔ)到b,那么a仍然是3,b變成1。
注意:變量
a現(xiàn)在的值是:1。
現(xiàn)在,我們從3中減去b的具有新值1,并將其存儲(chǔ)到b(a = 3 - 1),然后變量a的值變成2。最后得出結(jié)論 - 兩個(gè)變量的值被交換。
C語(yǔ)言實(shí)現(xiàn)上述算法應(yīng)該是這樣的 -
#include <stdio.h>
int main() {
int a, b;
a = 11;
b = 99;
printf("Values before swapping - \n a = %d, b = %d \n\n", a, b);
a = a + b; // ( 11 + 99 = 110)
b = a - b; // ( 110 - 99 = 11)
a = a - b; // ( 110 - 11 = 99)
printf("Values after swapping - \n a = %d, b = %d \n", a, b);
}
執(zhí)行上面示例代碼,得到以下結(jié)果 -
Values before swapping -
a = 11, b = 99
Values after swapping -
a = 99, b = 11