c語言中交換兩個int型別變數有以下幾種方法:
1、使用第三方變數
int main()
int a = 10;
int b = 20;
int temp;
temp = a;
a = b;
b = temp;
2、不使用第三方變數(使用加減法)
int main()
int a = 10;
int b = 20;
a = a - b;
b = b - a;
a = b + a;
3、不使用第三方變數(使用^運算子)
int mian()
int a = 10;
int b = 20;
a = a ^ b;
b = a ^ b;
a = a ^ b;
1、就可讀性而言,第一種方式是最佳的選擇,第二種和第三種可讀性不佳;
2、就執行效率而言,第二種和第三種相對第一種方式更高;
3、第二種方式有缺陷,原因是int型別變數是有範圍的,如果a是乙個很大的正整數在int型別範圍內,b是乙個非常小的負整數也再int型別範圍內,但a - b的值很有可能溢位,這樣結果就會是錯誤的。
所以綜合上述,選擇第一種方法為最佳。
交換兩個int型別指標的問題
在剛剛接觸c語言的時候我們一定學過乙個swap函式來交換兩個數 void swap int a,int b 顯然上面的函式是錯的,因為傳進去的a是形參,在函式內部a,b進行交換並不會影響函式外a和b的值,為了解決這個問題,我們改為傳入a和b的位址進去,通過解引用將a和b的值交換,這樣就可以真正意義上...
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語言 兩個值的交換
指標的呼叫 交換兩個數值 一 子函式 被呼叫函式 的改變要想修改父函式 呼叫函式 的值需要 1.傳指標 2.解引用 二 的實現過程 錯誤一 void swap int a,int b int tmp tmp a a b b tmp int main int a 10 int b 20 swap a,...