亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java和C++中的null真實指向哪里,畢竟null指針也是占用了一定字節的內存地址的?

Java和C++中的null真實指向哪里,畢竟null指針也是占用了一定字節的內存地址的?

Helenr 2018-07-09 19:19:58
據我所知C++指向0地址,那么0地址具體的內容又是什么呢?另外附帶問下,我們所說的32位和64位具體指的是什么?是寄存器的位數嗎?
查看完整描述

3 回答

?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

有兩個常見的謬誤,我解釋下,你在c++也好,java也好,使用的地址,是邏輯地址,而不是內存的物理地址。
換一句話說,兩個程序,都有一個叫1234的地址,它們其實是對應物理內存上兩個完全不同的地方。

另一個誤解是,內存地址空間和內存是不同的。因為一些外設、rom等等,也會使用內存地址,但是它們不是內存。
比如說,1234這個地址,可能對應的是計算機rom存儲器(也就是bios系統)的一個地址,那么它顯然就是只讀的,而且顯然不是內存。
類似地,顯卡、dma方式存取的硬盤,等等也有各自的地址,這些地址顯然也不是內存。


查看完整回答
反對 回復 2018-07-13
?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

0地址就是內存地址的起始位置,當然,這個地址一般是系統boot啟動的地址,這個地址是受保護的,不允許應該程序訪問的,如果不小心訪問到這個
地址,系統就會拋出一個異常,32位和64位就是系統尋址時內存地址的位數,這個也是等于尋址寄存器的位數,比如32位地址表示例如:0x12345678,
如果是64位,那么地址就是0x0000000012345678,主要還是內存地址占用位數不同。

查看完整回答
反對 回復 2018-07-13
  • 3 回答
  • 0 關注
  • 689 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號