c語言中交換兩個變數值(a,b)的幾種方法:
1、利用臨時變數:
int temp;2、不用臨時變數(這種方法有可能溢位):temp = a;
a = b;
b = temp;
a = a + b;
b = a - b;
a = a - b;
3、用按位運算子(這種方法不適合浮點數):
a = a ^ b;
b = a ^ b;
a = a ^ b;
4、記憶體拷貝方法(個人覺得這種方法很經典):
int size = sizeof(a);
char* temp = (char*)malloc(size);
memcpy(temp, &a, size);
memcpy(&a, &b, size);
memcpy(&b, temp, size);
free(temp);
還有其他的交換方法,希望各位高手繼續補充,謝謝。
C語言交換兩個變數的值
交換a,b變數的值,最簡單的方法,建立中間中間變數c,先把a的值存在c裡,然後把b的值放入a內,最後把c中的值賦給a,就完成了a,b變數值的交換。如下 include 利用中間變數交換兩個變數值 int main 如果不使用中間變數,我們可以利用異或運算來實現兩個變數值的交換。比如變數a 3,b 7...
c語言交換兩個變數的值
有兩個變數a 和b,想要交換它們的值 int a,b 能不能這樣操作呢?b a a b 不能啊,這樣操作的意思是把a的值放到b中,然後b中的值已經被覆蓋掉了,已經不是b原來的那個值了,所以是沒有意義的。ok,既然不能這樣操作,那怎麼辦?看一下問題出在 是不是b的值被覆蓋掉了,那麼可以先把b的值備份一...
交換兩個變數
目的 實現兩個變數值的交換 以int 型別為例 方法一 使用臨時變數。優點 安全,適合任何型別資料交換,無溢位風險。缺點 保守 效率不高,需要使用第三方臨時變數 棧空間 1 void swap value int var1,int var2 2 方法二 利用 算術運算實現。優點 不需要額外的臨時變數...