天天看點

C語言基礎:兩個變量交換值的方法

學習任何語言基礎時,兩個數值得交換是必須掌握的,下面是3種不同的方式(c語言)

方法一:利用數學的計算技巧

1 #include <stdio.h>
 2 int main()
 3 {
 4     
 5     int a =10, b = 20;
 6     
 7     printf("交換前a=%d, b=%d\n", a, b);
 8     
 9     a = a - b;
10     b = a + b;
11     a = b - a;
12     
13     printf("交換後a=%d, b=%d\n", a, b);
14     
15     return 0;
16 }      

這種方法的寫法不唯一,對于a,b;隻要先給其中一個先賦予a-b,其他的自己算一下就能寫出來;

方法二:第三方變量,也是最常用,可讀性最好的

1 #include <stdlib.h>
 2 #include <stdio.h>
 3 int main()
 4 {
 5 
 6     int a =10, b = 20;
 7     printf("交換前a=%d, b=%d\n", a, b);
 8     
 9     int temp = a;//先定義一個臨時變量
10     a = b;
11     b = temp;
12     
13     printf("交換後a=%d, b=%d\n", a, b);
14     
15     return 0;
16 }      

方法三:位運算,利用^異或運算的特點:a^b^a = a^a^b = 0^b = b,交換律,相同數值異或為0,0和任何數異或為任何數

1 #include <stdio.h>
 2 int main()
 3 {
 4     int a =10, b = 20;
 5     printf("交換前a=%d, b=%d\n", a, b);
 6     
 7     a = a^b;
 8     b = b^a;
 9     a = a^b;
10     
11     printf("交換後a=%d, b=%d\n", a, b);
12     
13     return 0;
14 }      

繼續閱讀