| 聲明:文中觀點僅代表個人,其中文字、圖片未經本人許可,不得部分或全部轉載,違者所造成影響後後果自負!聯絡本人方式:80368704@qq.com QQ:8036870410.1 記憶體單元地址 我們每個人,在不斷的成長,無論何時,都在不斷的學習著,通過書本,通過師傅,通過失敗,我們不斷的總結著,不斷的整理著自己的知識,使其系統化,理論化,以便能解決更多複雜的問題。但是具有這樣條理清晰,結構完整的學識,我們經過了若干年,學習了若干代人的經驗,經過了若干次的實踐,一切的一切都是那麼來之不易。從最初的一點點皮毛接觸(感性認識),到完備知識體系的建立(理性認識),我們再把這些知識傳授給其他人,哪裡是一天兩天可以教會他們的呀。指標是C語言博大精深之處,認識它,其實是在進軍作業系統核心部分;指標是C之所以被稱為中級語言的重要原因之一,它繼承了組合語言的記憶體單元的直接和間接訪問的手段,使我們用進階語言編寫的程式的效率大幅提高。指標的用途和優點是多多的,但是指標對不熟悉系統工作原理,尤其是對儲存空間原理不清楚的人,是不容易掌握的,因此我們對指標的講解從記憶體的工作原理講起。 在我們的電腦中,主要的記憶體叫做RAM(Random Access Memory),即隨機存取儲存空間,在電腦的基礎課中我們就瞭解到,RAM的主要作用是儲存程式碼和資料供CPU在需要的時候調用。RAM對於系統效能的影響是每個PC使用者都非常清楚的,那麼它是如何?程式和資料的存取的呢? 程式和資料的存取,並不是像堆放山藥蛋那樣簡單,而是更像是超市存包處用箱格子存放物品一樣,不但要放進去,還要能在需要的時候準確的取出來。 1 2 3 4 5 6 7 。。。。。。。。。。。。。。。。。。。。。。。。。。。9999 ▼▼▼▼▼▼▼ ▼ = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 上面的中的小園點代表RAM中的儲物箱,每一個圓點是一個小箱,,每個小箱有一個唯一的編號。電腦術語把一個小箱子稱為一個位元組.RAM就是由許多位元組組成的,如中小圓點組成的細線。這裡每個位元組的編號是數位,編號從0開始,即第一個位元組的編號是0,依次第2個位元組的編號是1,其後是2,3,4,5,6.............直到最後一個位元組,當整個記憶體共有100個位元組,最後一個位元組的編號就是99;而當我們的記憶體共有10000個位元組時,最後一個位元組的編號就是9999了。一般的,我們稱這個編號為該位元組的地址編號,簡稱地址。 上面的內容,貌似原理,你仔細看看,其實很簡單的哩,你把CPU和RAM當作兩個人,CPU是存取包裹的人,RAM是存包處的管理員!具體舉例:設包裹名為50,箱格子的號是2000,如下: 如果CPU要想從RAM那裡取(包),而且現在包被存在(箱號)為2000的(箱)中,這時CPU首先需要向RAM提供(箱號)即2000,以便RAM定位待取的(包)50,然後等待若干個時間單位之後,RAM就會根據(箱號)2000定位到(包)50,並把(包)50交給CPU。我們現實生活中的超市存包處,一個箱格子是只放一個包的,哈,於是取包的過程可以用表示: 地址 2000▼ RAM CPU = = =.......= = = = = = = = = = = =........ = = = = = = = = || || <←←<←←2000 || || ||........................50................................|| || || || || 50 >→→>→→ > || || = = =.......= = = = = = = = = = = =........ = = = = = = = = 超市存包處被劃分為許多格子,每個格為最小的單位,一個格存一個包,如果你一個人有3個包,那麼就給你3個格子哦;我們把一個格子稱為一個存包單元。 回到電腦中,如果CPU想要從RAM中調用的(資料),存放在(地址編號)為2000的(位元組)中,這時CPU它首先需要向RAM提供(地址)即2000,以便RAM定位待存取的(資料)50,然後等待若干個時間單位之後,RAM就會根據(地址)2000定位到(資料)50,並把(資料)50交給CPU。 前面我們已經提到,作為記憶體的RAM是以位元組為最小單位的,你的資料如果1個位元組放不下,可以給你2個位元組或更多嘛,如此而已。類似存包處把每個格子稱為存包單元,我們把每個位元組稱為記憶體中資料存取的單元,簡稱為記憶體單元。每個記憶體單元的地址編號,簡稱為記憶體單元地址。 哈!一切的一切就是如此的簡單,你,對指標的理解,已經有了一個勝利的開始,衷心的祝賀你,我的朋友! |