C語言交換兩個變數的值

2021-08-08 11:58:51 字數 650 閱讀 1444

交換a,b變數的值,最簡單的方法,建立中間中間變數c,先把a的值存在c裡,然後把b的值放入a內,最後把c中的值賦給a,就完成了a,b變數值的交換。**如下:
#include 

//利用中間變數交換兩個變數值

int main()

如果不使用中間變數,我們可以利用異或運算來實現兩個變數值的交換。比如變數a=3,b=7,我們利用異或運算來交換a和b的值,運算過程如下:
a ——– 0011 (十進位制的3)

b ——– 0111 (十進位制的7)

a^b —– 0100 (十進位制的4)

此時再用a^b的結果異或a則得到即7,同理可以得到即3。

於是,我們可以先使a=a^b(執行此條語句後a=4,b=7),再使b=a^b(執行此條語句後a=4,b=3),最後使a=a^b(執行此條語句後a=7,b=3),這時就完成了變數a,b值的交換。具體**如下:

#define _crt_secure_no_warnings 1

#include

//利用異或運算交換兩個變數值

int main()

c語言交換兩個變數的值

有兩個變數a 和b,想要交換它們的值 int a,b 能不能這樣操作呢?b a a b 不能啊,這樣操作的意思是把a的值放到b中,然後b中的值已經被覆蓋掉了,已經不是b原來的那個值了,所以是沒有意義的。ok,既然不能這樣操作,那怎麼辦?看一下問題出在 是不是b的值被覆蓋掉了,那麼可以先把b的值備份一...

C語言中交換兩個變數的值

在c語言中,要交換兩個變數的值,對於不同的人,可能會有不同的方法。對於初學者來說,可能是這樣。void swap int x,int y 但是,c語言中的函式呼叫採用的值傳遞,因此在主函式中呼叫該swap函式顯然無法交換兩個變數的值。當然,對於很多使用c語言的人來說,不會犯上面的錯誤,會這麼寫交換函...

C 交換兩個變數的值

下面是幾個交換兩個數字的函式,分析以下程式,看結果是否正確?一 error include void swap err1 int a,int b error1 int main 父函式 執行上面程式,結果是 a 10,b 20 a 20,b 10 a 10,b 20 對結果進行分析,第一行的a和b是...