【C語言】堆(heap)、棧(stack)和靜態存儲區


基本要點:

  • 基本數據類型都存放在棧區域(stack)
  • 引用數據類型都存放在堆區域(heap)

靜態存儲區:

  • 靜態存儲區在程序編譯的時候就已分配好,這塊內存在程序的整個運行期間都存在(主要存放靜態數據全局數據常量

棧和堆:

  • 變量都存放在內存
  • 內存給變量開闢了兩塊區域,分別爲棧區域堆區域
  • 的特點:開口向上(後進先出),速度快,容量小
    • 局部變量的存儲單元都可以在棧上創建,函數執行結束時這些存儲單元自動被釋放
  • 的特點:速度稍慢,容量比較大
    • 堆區域亦稱動態內存分配
    • 運行的時候用 mallocnew 申請任意大小的內存,程序員負責在適當的時候用 freedelete 釋放內存
    • 動態內存的生存期由我們決定,如果我們不釋放內存,程序將在最後才釋放掉動態內存
    • 良好的編程習慣是:如果某動態內存不再使用,需要將其釋放掉,否則,我們認爲發生了內存泄漏現象。

基本數據類型的存儲:

  • 基本數據類型都存儲在棧區域
  • 3 種基本數據類型:
    • 整型(通常包括shortintlong
    • 實型,即浮點型數據(包括floatdouble)(稱爲實型,估計是因爲表示的數據範圍是實數(因爲比起整型,實型還可以表示小數))
    • 字符型(char),字符型與ASCII碼一 一對應

引用數據類型的存儲:

參考文章:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章