C語言指標問題

2022-07-01 20:15:16 字數 613 閱讀 6508

1樓:匿名使用者

你那是在swap內部交換了x,y,函式返回後,在swap內的改變不影響main函式中的x,y

如果改成下面的方式,或許可以。

void swap(int * &x,int * &y)

2樓:匿名使用者

第一樓的引數引用,只適用於c++,不適用於c,這有差異的。

void swap(int *x,int *y)

//這隻交換了形參 x,y 的指標值,對原來的實參p1,p2的值沒有任何變化,所以,無效。

3樓:鄂渚緒風

首先你要明白,指標本身的值是地址,例如你的x,y裡存放的只是從外界傳進來的是存放了a,b地址的值,你在下面swap函式呼叫的時候,在裡面進行的操作只對它們存的地址進行了交換,而沒有對它們所指向的地址裡的a,b的值進行交換,所以,你在執行完函式後a,b的值是不會改變的

4樓:月下獨酌

貌似是譚浩強c++裡面的例子,二樓的解答不錯。。

5樓:匿名使用者

在swap函式裡輸出的話可以.否則交換了x與y的地址,函式結束後,x與y被自動釋放,相當於你什麼都沒有做.

c語言指標問題,C語言指標問題

記憶體對齊的緣故。p buf 作為一個指標,它的值是記憶體的某個位元組的地址。如果想要把 p buf 強制轉換版 成一個 unsigned int 型別的指權針,需要滿足一個必要條件,就是 p buf 的值必須能夠被4整除。之所以是4,是因為 unsigned int 是要佔4個位元組的 c語言結構...

關於C語言指標問題,求大神,C語言指標的問題,求大神!!

第一個函式的兩個指標是區域性變數,函式完了就銷燬了,換不換都一樣,第二個是直接操作指標指向的地方 記憶體單元 也就是直接操作變數。不恰當的比方,好比停車,有個圖紙記錄了每個車位停的什麼車,第一個就相當於另外拿了個圖紙畫了一下想要的位置,原來的圖沒變,函式結束後來的圖被扔了,原來的圖保留著,實際的車並...

c語言(指標問題)

typedef struct statestruct ss 定義了一個新的型別,這個型別是個結構體,型別名是ss 下面宣告一個ss型別的變數ss s s就是一個ss型別的變數void funcptr void ptr 是一個型別名,型別是funcptr,這是一個函式指標型別,這個函式指標型別是返回值...