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

2021-06-26 17:33:48 字數 426 閱讀 5589

在c語言中,要交換兩個變數的值,對於不同的人,可能會有不同的方法。

對於初學者來說,可能是這樣。

void swap(int x,int y)

但是,c語言中的函式呼叫採用的值傳遞,因此在主函式中呼叫該swap函式顯然無法交換兩個變數的值。

當然,對於很多使用c語言的人來說,不會犯上面的錯誤,會這麼寫交換函式。

void swap(int *x,int *y)

通過傳遞變數的位址,能達到預期的結果。

今天,看到另外一種方法。

void swap(int *x,int *y)

通過異或操作,也能達到這個效果,而且,不需要額外的儲存開銷,這樣執行效率是否更高呢?

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的值備份一...

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是...