網域名稱俱樂部


返回   網域名稱俱樂部 > 電腦與網路技術 > 電腦網路相關技術 > 一般軟體與網路使用討論

回覆
 
主題工具
  #1  
舊 2015-07-03, 04:22 PM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 22,995
預設 C語言有關陣列指標常數的記憶體配置問題

我正在閱讀「C語言教學手冊」。其中在「指標10-33」這頁下方有個圖解,我有點搞糊塗了。

如圖:



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

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

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

請教一下先進。
__________________
咖啡走路
微博


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章
  #2  
舊 2015-07-04, 07:54 AM
yumi yumi 目前離線
進階會員
 
註冊日期: 2005-12-29
文章: 1,373
預設

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

比如double b[10000],每个元素占用8字节,10000个元素就是80000字节。
但是位址只保存1个(b[0]的)位址即可,其余的自动推算。
__________________
收购各位版友的四字母com、数字米com/net/cc、三杂米com、拼音米。价格随行市价。站内联系。
回覆時引用此篇文章
  #3  
舊 2015-07-04, 09:59 AM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 22,995
預設

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

thanks.
__________________
咖啡走路
微博


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章
  #4  
舊 2015-07-04, 01:47 PM
yumi yumi 目前離線
進階會員
 
註冊日期: 2005-12-29
文章: 1,373
預設

另有一块记忆体存放0022ff38
__________________
收购各位版友的四字母com、数字米com/net/cc、三杂米com、拼音米。价格随行市价。站内联系。
回覆時引用此篇文章
  #5  
舊 2015-07-04, 05:59 PM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 22,995
預設

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


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章
回覆

主題工具

發文規則
不可以發表新主題
不可以發表回覆
不可以上傳附件
不可以編輯自己的文章

啟用 BB 代碼
論壇啟用 表情符號
論壇啟用 [IMG] 代碼
論壇禁用 HTML 代碼



所有時間均為 +8。現在的時間是 06:33 PM


本站主機由網易虛擬主機代管
Powered by vBulletin® 版本 3.8.4
版權所有 ©2000 - 2024,Jelsoft Enterprises Ltd.