c語言交換兩個變數的方法:
1.通過建立臨時變數的方式交換兩個變數的值
2.通過求和的方式交換兩個變數的值
3.通過按位異或的方式交換兩個變數的值
第1種方法需要引入額外的變數;第2種方法中如果要交換的兩個值的資料較大,可能會導致資料溢位(不推薦該方法);第3種
方法是不是顯得很高大上呢
下面是在vc++6.0下測試的交換兩個變數的值的三種方法的完整測式**:
#include //通過建立臨時變數的方式交換兩個變數的值
void swap1(int *x, int *y)
//通過求和的方式交換兩個變數的值
void swap2(int *x, int *y)
//通過按位異或的方式交換兩個變數的值
void swap3(int *x, int *y)
int main(void)
下面通過乙個例項簡要分析按位異或的方式交換兩個變數的值的方式的執行機制:
/*
5: 0101
8: 1000
--------
*x:1101
8: 1000
--------
*y:0101 --5
*x:1101
--------
*x:1000 --8
*/
C語言 交換兩個變數的
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 記憶體拷貝方法 個人覺得這種方...
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的值備份一...