測試環境:vs2013
代碼如下
# include<stdio.h>
# include<stdlib.h>
int main()
{
int a = 1;
int b = 2;
int t = 0;
//法1
t = a;
a = b;
b = t;
printf("a=%d b=%d t=%d\n", a, b, t);
//輸出結果 a=2 b=1 t=1
a = 1; //重新給a b t賦為原來的值
b = 2;
t = 0;
//法2
t = b;
b = a;
a = t;
printf("a=%d b=%d t=%d\n", a, b, t);
//輸出結果 a=2 b=1 t=2
system("pause");
}
關於兩個變量之間交換值的問題,我用了一個t變量來做交換變量的臨時中轉站,
發現無論是先把a 或b 放在中轉站裡面都不會影響最後的結果,影響的只是t的值,
法1和法2就只有這些差別嗎?請問我說的對不對呢?
求吐槽!
程序一定要寫的易懂,易讀,最直觀的方法不一定有最高的效率,但一定有良好的可維護性,這個很重要。因此請不要拘泥於具體的方法,用大家最喜聞樂見的就行了。你可能是初學者,我要告訴你的是,寫程序就是寫出自己的思想。