星期一, 2月 27, 2017

[ C ] 指標swap


如何利用指標來做swap功能,
要直接去處理指標所指的位址的內容值,
這樣就不必傳回傳值了。

記得一定要傳address去給function,
swap(&Array[i], &Array[j]);

如果只是傳值去,那會沒用的,因為改一改,
function結束後,function內宣告的變數也會不見,
所以要傳address過去。

而function的參數宣告也要用指標的方式來宣告,
代表我要接收傳來的address。
void swap(int *a, int *b)

宣告一個普通的int變數來做暫存值。
int tmp;

用*來取值,把a的值先寄放在tmp內,
然後把b的值放去a的位置,
再把tmp內的值放在b的位置內。
tmp = *a;
*a = *b;
*b = tmp;

這樣a所指的address內容值就可以替換成b,
b也替換成a。

SourceCode

沒有留言: