C語言的指標問題,C語言的一個指標問題。。

2022-03-15 15:15:29 字數 322 閱讀 5852

1樓:

指標做加法和減法是按其指向的型別來的,char*加1是往後移動一個char那麼長的位置,long*加1是往後一定一個整型那麼長的位置,這裡4個char才有一個long那麼長(具體你可以用sizeof輸出看),所以q是long*,q++往後移動了4個char,應該指向e的位置

2樓:匿名使用者

q經過q=(long*)p強制型別轉換後,q指向p所指向的記憶體塊中的a,因為q是long 型4位指標,只能看到abcd四位,所以q++;後q指向了e,並且看到efgh四位,再經過強制型別轉換,r也指向e,所以結果就是efgh

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

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

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

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

關於C語言中指標的小白問題,一個關於C語言中指標的小白問題

p,指標變數佔用16位,存放地址。地址是整數,給指標賦值後,所以指標內容是整數。p a 0 則p的內容是a 0 0 的地址,即相當於p a 0 0 因為p是從a 0 開始增加的,每增加一,則指向陣列中的下一個元素的地址,所以p a 0 算出p指向a 0 0 後的第幾個元素,若是4的倍數,則換行。因為...