A. 關於c語言 指針變數作為函數形參的問題
這里是指針變數,但是它指向的空間是被分配過的.你可以向裡面寫入或者讀出.
B. c語言中指針作為形參,代碼如下:
你要用*去解引用,這樣才能改變指針指向內存的值。
你的swap函數寫的有問題,正確的寫法有人給了。
至於為什麼*x,*y的值沒有改變,因為你交換的是2個形參的值,雖然你傳入的是指針,但是你沒有把它們當成指針來用,最後的結果跟傳非指針值是一樣的。
如果想真正改變實參的值,就必須交換指針指向的內存,而不是單純交換指針變數本身。形參是通過堆棧傳遞的,只有用類似 *x = 1;這樣的語句操作指針指向的內存,才能影響到實參,否則實參的值是不會改變的。
其實最好的方式就是去VS里調試運行,仔細觀察運行過程,就能比較清晰地了解指針。單純的理論是站不住腳的,拉出來溜溜就一清二楚了。
想對你能有幫助。