您好,登錄后才能下訂單哦!
#include<stdio.h> #include<stdlib.h> int main() { int a = 1; int b = 2; int tmp = a; a = b; b = tmp; printf("a = %d b = %d\n",a,b); system("pause"); return 0; }
上面是用創建中間變量的方法交換,下面是不創建中間變量的另一種方法:
a = a+b; b = a-b; a = a-b; 當然還可以用異或: a = a^b; b = a^b; a = a^b; 以上都是在main函數中實現,下面一種方法創建了函數,用指針來交換兩個整型值: #include<stdio.h> #include<stdlib.h> void Swap(int *p1, int *p2) { int tmp = *p1; *p1 = *p2; *p2 = tmp; } int main() { int a = 1; int b = 2; Swap(&a, &b); printf("a = %d b = %d\n",a,b); system("pause"); return 0; } 然而如果Swap函數寫成下面這樣是錯誤的,只是進行了值傳遞,上面的方法傳的是地址 void Swap(int num1, int num2) { int tmp = num1; num1 = num2; num2 = tmp; }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。