1 內(nèi)存

1 內(nèi)存


【原創(chuàng)】轉(zhuǎn)載,引用,請注明出處,感謝~

1.1 內(nèi)存簡介

  • 物理上:內(nèi)存就是我們計算機中的內(nèi)存條,如下圖所示,一個內(nèi)存條就是一塊印制電路板,由多個存儲器芯片(DDR SDRAM)組成,其中,存儲器芯片就是下圖中的黑色塊塊,也可稱其為顆粒,內(nèi)存的特點是讀寫速度快,但斷電后所存儲的數(shù)據(jù)會丟失。
內(nèi)存條.png
  • 內(nèi)存與硬盤區(qū)別:硬盤,特點是斷電后數(shù)據(jù)不丟失,容量大,但讀取速度慢。我們安裝的軟件,寫的文本文件都是保存在硬盤中的(否則斷電后,東西就都沒了),當(dāng)我們打開一個軟件或者打開一個文本文件后,操作系統(tǒng)會為這個軟件或文件分配內(nèi)存空間,再從硬盤中將其拷貝到內(nèi)存中,這樣我們的CPU就可以高速的操作軟件或者讀寫文件了(否則沒有內(nèi)存當(dāng)這個橋梁的話,軟件運行速度會很感人~)。例如:我們打開了一個word文檔,操作系統(tǒng)會為這個文檔分配內(nèi)存空間,將硬盤中的word文檔拷貝到內(nèi)存中一份,我們編輯word文檔其實是在編輯內(nèi)存中的副本,當(dāng)我們點擊保存按鈕時,會將內(nèi)存中的副本寫到硬盤中去,這樣當(dāng)我們關(guān)閉電腦再次打開時,修改后的文件依然有效。
    • CPU:我快如閃電
    • 內(nèi)存:我雖然沒有CPU塊,但是我可比硬盤快多了
    • 硬盤:雖然我很慢,但是我容量大,又便宜
硬盤.png
  • 程序中的內(nèi)存:在我們編寫C程序時,內(nèi)存的概念跟我們打開一個文件沒有什么差別。例如:當(dāng)我們定義一個變量時,C編譯器會請求操作系統(tǒng)為這個變量分配內(nèi)存空間,當(dāng)不需要這個變量時,C編譯器會請求操作系統(tǒng)釋放這個變量的內(nèi)存空間。
  • 一句話:C程序員需要清楚的知道一個變量的生命周期,也就是一個變量什么時候有了內(nèi)存空間,什么時候被釋放了。**

1.2 內(nèi)存模型

  • 為了清楚的知道程序中眾多變量的生命周期,我們需要對計算機中的內(nèi)存空間進行建模,稱為內(nèi)存模型。當(dāng)然了,模型不一定要非常的精確,只要有一個相對簡單的模型便于我們分析就可以了。
  • 在本篇筆記中會基于以下內(nèi)存模型進行分析:
    • 棧區(qū):局部變量的所保存的位置,特點:系統(tǒng)自動申請內(nèi)存空間,自動釋放內(nèi)存空間
    • 堆區(qū):程序員通過使用malloc(), calloc(), realloc()等函數(shù)手動分配的內(nèi)存空間所保存的位置,特點:手動分配內(nèi)存空間,手動釋放內(nèi)存空間
    • 全局區(qū):全局變量和全局字符串所保存的位置,特點:系統(tǒng)自動分配內(nèi)存空間,在整個程序運行期間不釋放這段內(nèi)存空間
    • 代碼區(qū):程序中文本所保存的位置
內(nèi)存模型.png
  • 內(nèi)存的計量單位:跟計算機中其它存儲設(shè)備一致,即:
    1TB = 1024GB, 1GB = 1024MB,1MB = 1024KB,1KB = 1024Byte,1Byte = 8Bit
    由于ASCII碼中一個字符使用1個字節(jié)表示,因此,程序中一般用到的內(nèi)存最小計量單位是字節(jié)(Byte)。
  • 內(nèi)存模型的具體表現(xiàn)形式:以上四種內(nèi)存模型的具體表現(xiàn)形式都可理解為如下圖所示的“儲物格”,每個儲物格都有唯一的“標(biāo)簽”(內(nèi)存地址)與之對應(yīng),當(dāng)我們訪問一個”格子“的數(shù)據(jù)時,必須根據(jù)“標(biāo)簽”找到”格子“的空間,將數(shù)據(jù)”放入“(寫)或”拿出“(讀)。
內(nèi)存模型表現(xiàn)形式.png
  • 一句話:在大腦中建立上圖內(nèi)存模型,在我們編寫程序時對號入座即可。**
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容