【C語言】給定兩個整型變數的值,將兩個值的內容進行交換(不同方法)
阿新 • • 發佈:2019-01-09
給定兩個整型變數的值,將兩個值的內容進行交換,現在我介紹幾種不同的實現方法:
法1:在主函式裡實現,這樣操作這兩個值時並未重新開闢空間,直接交換可以達到目的。
#include<stdio.h> #include<stdlib.h> int main() { int a = 10; int b = 20; int tmp = a; a = b; b = tmp; printf("a = %d\n", a); printf("b = %d\n", b); system("pause"); return 0; }
法2:考慮到重新寫一個函式時,整型變數會開闢空間並將原來的值copy過來,而臨時變數的週期我們是知道的。所以,傳值不可能達到目的,只有傳指標。(更加貼近於計算機的內部原理)
#include<stdio.h> #include<stdlib.h> void swap(int *pa,int *pb) { int tmp = *pa; *pa = *pb; *pb = tmp; } int main() { int a = 10; int b = 20; swap(&a, &b); printf("a = %d\n", a); printf("b = %d\n", b); system("pause"); return 0; }
法3:針對法2,我們想到引用。
#include<stdio.h>
#include<stdlib.h>
void swap(int &a, int &b)
{
int tmp = a;
a = b;
b = tmp;
}
int main()
{
int a = 10;
int b = 20;
swap(a, b);
printf("a = %d\n", a);
printf("b = %d\n", b);
system("pause");
return 0;
}