乙個函式想修改另乙個函式的值,必須做到兩點
1.傳指標;
2.解引用;
正確**
void
swap
(int
*p1,
int*p2)
錯誤示範1:未傳指標造成無法交換
void
swap_err1
(int a,
int b)
錯誤示範2:未解引用造成無法交換
void
swap_err2
(int
*p1,
int*p2)
錯誤示範3:使用懸掛指標,編譯器報錯
void
swap_err3
(int
*p1,
int*p2)
錯誤示範4:不使用第三變數進行交換,在進行如含有奇數個元素的陣列逆置時,會造成中間的那乙個值出錯,值變為0
在進行陣列逆置時,會進行中間值和本身互換,而在使用指標時,p1、p2指向的是同乙個值,最後結果一定會為0
void
swap1_err4
(int
*p1,
int*p2)
注意對指標的使用,防止在呼叫函式時出現不可預知的錯誤 c語言中swap問題小結
include include void swap1 int x,int y int temp temp x x y y temp void swap2 int x,int y int temp temp x x y y temp void swap3 int x,int y int temp te...
C語言swap函式 解決函式不能交換值的問題
首先在看這一篇部落格之前應該要了解到在main函式裡面呼叫乙個main函式外的函式,引數傳過去只是乙個拷貝的值。如果直接把兩個int傳入函式,用乙個中間變數交換他們倆,那麼這只是改變了這個變數在swap函式裡面的值,回到main裡面就復原了。那麼,如何真正交換兩個int變數的值呢?用指標,把兩個in...
溫故而知新 C語言中swap函式
最近在學習資料結構和演算法,發現使用到swap 函式,於是重新看了一下swap函式的各種實現,發現我對函式實參和形參理解不夠透徹,現在分享我對swap的一些見解。void swap int a,int b 而以下兩種是不能實現交換的 void swap1 int a,int b void swap2...