第10章 指針(一) 內(nèi)存地址單元
|
聲明:文中觀點僅代表個人,其中文字、圖片未經(jīng)本人許可,不得部分或全部轉(zhuǎn)載,違者所造成影響后后果自負!聯(lián)系本人方式:80368704@qq.com QQ:80368704
10.1 內(nèi)存單元地址我們每個人,在不斷的成長,無論何時,都在不斷的學(xué)習(xí)著,通過書本,通過師傅,通過失敗,我們不斷的總結(jié)著,不斷的整理著自己的知識,使其系統(tǒng)化,理論化,以便能解決更多復(fù)雜的問題。但是具有這樣條理清晰,結(jié)構(gòu)完整的學(xué)識,我們經(jīng)過了若干年,學(xué)習(xí)了若干代人的經(jīng)驗,經(jīng)過了若干次的實踐,一切的一切都是那么來之不易。從最初的一點點皮毛接觸(感性認識),到完備知識體系的建立(理性認識),我們再把這些知識傳授給其他人,哪里是一天兩天可以教會他們的呀。指針是C語言博大精深之處,認識它,其實是在進軍操作系統(tǒng)核心部分;指針是C之所以被稱為中級語言的重要原因之一,它繼承了匯編語言的內(nèi)存單元的直接和間接訪問的手段,使我們用高級語言編寫的程序的效率大幅提高。指針的用途和優(yōu)點是多多的,但是指針對不熟悉系統(tǒng)工作原理,尤其是對存儲器原理不清楚的人,是不容易掌握的,因此我們對指針的講解從內(nèi)存的工作原理講起。 在我們的計算機中,主要的內(nèi)存叫做RAM(Random Access Memory),即隨機存取存儲器,在計算機的基礎(chǔ)課中我們就了解到,RAM的主要作用是存儲程序代碼和數(shù)據(jù)供CPU在需要的時候調(diào)用。RAM對于系統(tǒng)性能的影響是每個PC用戶都非常清楚的,那么它是如何實現(xiàn)程序和數(shù)據(jù)的存取的呢? 程序和數(shù)據(jù)的存取,并不是像堆放山藥蛋那樣簡單,而是更像是超市存包處用箱格子存放物品一樣,不但要放進去,還要能在需要的時候準確的取出來。 1 2 3 4 5 6 7 。。。。。。。。。。。。。。。。。。。。。。。。。。。9999 ▼▼▼▼▼▼▼ ▼ = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 上面的示意圖中的小園點代表RAM中的儲物箱,每一個圓點是一個小箱,,每個小箱有一個唯一的編號。計算機術(shù)語把一個小箱子稱為一個字節(jié).RAM就是由許多字節(jié)組成的,如上圖中小圓點組成的細線。這里每個字節(jié)的編號是數(shù)字的,編號從0開始,即第一個字節(jié)的編號是0,依次第2個字節(jié)的編號是1,其后是2,3,4,5,6.............直到最后一個字節(jié),當整個內(nèi)存共有100個字節(jié),最后一個字節(jié)的編號就是99;而當我們的內(nèi)存共有10000個字節(jié)時,最后一個字節(jié)的編號就是9999了。一般的,我們稱這個編號為該字節(jié)的地址編號,簡稱地址。 上面的內(nèi)容,貌似原理,你仔細看看,其實很簡單的哩,你把CPU和RAM當作兩個人,CPU是存取包裹的人,RAM是存包處的管理員!具體舉例:設(shè)包裹名為50,箱格子的號是2000,如下: 如果CPU要想從RAM那里?。ò?而且現(xiàn)在包被存在(箱號)為2000的(箱)中,這時CPU首先需要向RAM提供(箱號)即2000,以便RAM定位待取的(包)50,然后等待若干個時間單位之后,RAM就會根據(jù)(箱號)2000定位到(包)50,并把(包)50交給CPU。我們現(xiàn)實生活中的超市存包處,一個箱格子是只放一個包的,哈,于是取包的過程可以用下圖表示: 地址 2000▼ RAM CPU = = =.......= = = = = = = = = = = =........ = = = = = = = = || || <←←<←←2000 || || ||........................50................................|| || || || || 50 >→→>→→ > || || = = =.......= = = = = = = = = = = =........ = = = = = = = = 超市存包處被劃分為許多格子,每個格為最小的單位,一個格存一個包,如果你一個人有3個包,那么就給你3個格子哦;我們把一個格子稱為一個存包單元。 回到計算機中,如果CPU想要從RAM中調(diào)用的(數(shù)據(jù)),存放在(地址編號)為2000的(字節(jié))中,這時CPU它首先需要向RAM提供(地址)即2000,以便RAM定位待存取的(數(shù)據(jù))50,然后等待若干個時間單位之后,RAM就會根據(jù)(地址)2000定位到(數(shù)據(jù))50,并把(數(shù)據(jù))50交給CPU。 前面我們已經(jīng)提到,作為內(nèi)存的RAM是以字節(jié)為最小單位的,你的數(shù)據(jù)如果1個字節(jié)放不下,可以給你2個字節(jié)或更多嘛,如此而已。類似存包處把每個格子稱為存包單元,我們把每個字節(jié)稱為內(nèi)存中數(shù)據(jù)存取的單元,簡稱為內(nèi)存單元。每個內(nèi)存單元的地址編號,簡稱為內(nèi)存單元地址。 哈!一切的一切就是如此的簡單,你,對指針的理解,已經(jīng)有了一個勝利的開始,衷心的祝賀你,我的朋友! |
作者:
RDIF
出處:
http://www.rzrgm.cn/huyong/
Email:
406590790@qq.com
QQ:
406590790
微信:
13005007127(同手機號)
框架官網(wǎng):
http://www.guosisoft.com/
http://www.rdiframework.net/
框架其他博客:
http://blog.csdn.net/chinahuyong
http://www.rzrgm.cn/huyong
國思RDIF開發(fā)框架
,
給用戶和開發(fā)者最佳的.Net框架平臺方案,為企業(yè)快速構(gòu)建跨平臺、企業(yè)級的應(yīng)用提供強大支持。
關(guān)于作者:系統(tǒng)架構(gòu)師、信息系統(tǒng)項目管理師、DBA。專注于微軟平臺項目架構(gòu)、管理和企業(yè)解決方案,多年項目開發(fā)與管理經(jīng)驗,曾多次組織并開發(fā)多個大型項目,在面向?qū)ο?、面向服?wù)以及數(shù)據(jù)庫領(lǐng)域有一定的造詣?,F(xiàn)主要從事基于
RDIF
框架的技術(shù)開發(fā)、咨詢工作,主要服務(wù)于金融、醫(yī)療衛(wèi)生、鐵路、電信、物流、物聯(lián)網(wǎng)、制造、零售等行業(yè)。
如有問題或建議,請多多賜教!
本文版權(quán)歸作者和CNBLOGS博客共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,如有問題,可以通過微信、郵箱、QQ等聯(lián)系我,非常感謝。

浙公網(wǎng)安備 33010602011771號