C語言 交換兩個變數的

2021-06-14 19:25:41 字數 634 閱讀 7582

c語言中交換兩個變數值(a,b)的幾種方法:

1、利用臨時變數:

int temp;

temp = a;

a = b;

b = temp;

2、不用臨時變數(這種方法有可能溢位):

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 方法二 利用 算術運算實現。優點 不需要額外的臨時變數...