網域名稱俱樂部

網域名稱俱樂部 (https://www.domainclub.org/index.php)
-   一般軟體與網路使用討論 (https://www.domainclub.org/forumdisplay.php?f=43)
-   -   C語言有關陣列指標常數的記憶體配置問題 (https://www.domainclub.org/showthread.php?t=38245)

哈啦 2015-07-03 04:22 PM

C語言有關陣列指標常數的記憶體配置問題
 
我正在閱讀「C語言教學手冊」。其中在「指標10-33」這頁下方有個圖解,我有點搞糊塗了。

如圖:

http://i1371.photobucket.com/albums/...pss4xoqb6a.jpg

在a[5]陣列中,a是陣列名稱也是指標常數,書上說它本身的「值」就是它自己的位址,

所以如果要求a,&a以及&a[0]的%p,三者是都一樣的,這點可以理解。

但如果從書上畫的配置的記憶體來看,a本身的那塊記憶體不就是a[0]嗎?而a[0]裡面放的值不是整數32嗎?那它的位址要存在哪裡呢?

請教一下先進。:bow

yumi 2015-07-04 07:54 AM

a本身的那塊記憶體就是a[0],存的数字就是32
这个位址是要有的,占用4-8个字节,在32位机器上占用4字节,在64位机器上占用8字节,来存放这个位址。

比如double b[10000],每个元素占用8字节,10000个元素就是80000字节。
但是位址只保存1个(b[0]的)位址即可,其余的自动推算。

哈啦 2015-07-04 09:59 AM

謝謝,你的意思是說,在a[0]這塊記憶體中除了有存數字32之外,還另存了自己的位址的值例如書上說的0022FF38?
還是「另有」一塊記憶體來存放0022FF38?

thanks.

yumi 2015-07-04 01:47 PM

另有一块记忆体存放0022ff38

哈啦 2015-07-04 05:59 PM

可是按照書上說的,a的%p和&a的%p是一樣的?也就是說,用%p來求a的內容和用%p來求a的位址,二者其實是一樣的?


所有時間均為 +8。現在的時間是 07:58 AM

Powered by vBulletin® 版本 3.8.4
版權所有 ©2000 - 2024,Jelsoft Enterprises Ltd.