註冊登錄
伊莉討論區返回首頁

thelord2009的個人空間http://a28.eyny.com/?5788411[收藏][複製][分享][RSS]

日誌

指標與陣列間的關係詳解

已有 810 次閱讀2023-1-1 05:32 PM

以下參考C++教學手冊第三版 洪維恩著 旗標出版股份有限公司
頁數9-34、10-6~10-9

如果a代表一維陣列
那麼
*(a+1)與a[1]都是陣列第2個元素(陣列編號從0開始,所以編號1是第二個元素)的值(內容)
&a[1]與a+1則是指向位址
你也可以這樣記
由於最外面的*號是依址取值的意思
所以一維陣列的*(a+1)是依址取值的意思,*號裡頭的就是指向位址,因此a+1則是代表指向位址。

如果num代表二維陣列
那麼
*(*(num+m)+n)代表取出二維陣列num裡第m+1列、第n+1行的值
上方講了陣列編號從0開始,所以m=0、n=0代表第1列第1行。【老外這樣發明可能跟源頭座標(0,0)有關】
你也可以這樣記
由於最外面的*號是依址取值的意思
所以二維陣列的*(*(num+m)+n)是依址取值的意思,*號裡頭的就是指向位址,因此*(num+m)+n則是代表指向位址。

雖然二維陣列可以用雙重指標表示
可是函數的引數不能接受設定雙重指標(只能單一指標)
因此
void func(int **){}是錯誤的

路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

facelistdoodle 塗鴉板

您需要登錄後才可以評論 登錄 | 註冊
驗證問答 換一個

Archiver|手機版|廣告|聯絡我們|廣告查詢|廠商合作|伊莉

GMT+8, 2024-5-24 05:18 AM

回頂部