1. 程式人生 > >用函式實現交換變數值

用函式實現交換變數值

敲黑板劃重點

用函式實現兩個數字內容的交換,你可能會這樣做:

void change_num(int a, int b) {
	int tmp = a;
	a = b;
	b = tmp;
}

感覺太簡單了阿,然後呼叫函式,大功告成
結果發現,,,emmm,不對啊 內容沒有交換,瓦特???
這時再次仔細檢查分析程式碼
其實 a b 兩個形參只能算是實參的副本
交換了數值,僅僅是把副本的數值進行了交換,而本體卻沒有發生變化
因此該種方法行不通
此時利用另一種方法,利用指標變數

void change_num(int* a, int* b) {
	int tmp = *
a; *a = *b; *b = tmp; }

傳入兩個引數分別為兩個數的地址,通過地址訪問地址內容,即實參值,將地址內容進行交換,這才能實現利用函式來交換兩個值的內容,然後就可以肆意的呼叫啦,哈哈!