c/c++數組與指針的實質體現(vs調試內存舉例說明)

藉助調試工具(vs)查看內存,vs查看方法:設置斷點,調試–>窗口–>內存–>內存1

加入斷點,在內存地址欄輸入&elements,發現&elements=0x008FF76C,數組賦值循環執行完後,該處保存的正是0800,0800,0800,也就是elements數組真正保存的內容,所以&數組名(&elements=0x008FF76C)0x008FF76C就是數組真正內容(0800,0800,0800)保存的地方。

在這裏插入圖片描述
再換成指針,發現&elements=0x008BFAF0,而裏面保存的內容是0x00EABC,然後在地址欄輸入0x00EABC,發現就轉到了真正的數組內容。
在這裏插入圖片描述
在這裏插入圖片描述
簡單總結一下:

1.第一個示例int elements[] ,&elements是保存指向數組內容的地址(記作add1),也就是指向數組的指針,查看這個地址也就看到數組的內容,也就是由add1(數組內容的地址)得到數組內容。
2.第二個實例int *elements,本身就是保存指向數組內容的地址(記爲add1),add1本身也是一串數字,&elements只是得到add1這串地址數字的儲存地址(即爲add2),也可以叫做二重指針,所以我們可以由add2(add1的地址)得到add1,然後由add1(數組內容的地址)得到數組內容。

再簡單總結下:
指針本身就是一串數字(0xABCDEFGH),這串數字就是指向內容的索引(類似書本頁碼與書內容的關係。總之,指針這個概念最好可以自己動手舉例子在內存地址親自慢慢感悟,不宜過度解讀容易帶偏(^_^)。