這裡的堆和棧指的是記憶體裡面的堆區和棧區。c語言的記憶體模型可以分為5類:棧區、堆區、靜態區、常量區、**區。
棧區stack:存放函式的引數值,區域性變數等等。由編譯器自動分配和釋放(可以回憶程式設計的時候好像區域性變數不需要特別的申請記憶體和釋放),通常在函式執行結束之後釋放。其操作方式類似於資料結構中的棧。棧記憶體分配運算一般都是內置於cpu指令集,可以理解為機器語言或者組合語言,所以效率高。但是容量有限,ios的棧區只有2m。
堆區heap:堆區是不連續的記憶體空間。一般通過new、malloc申請,通過delete、free釋放,所以一般需要自己mrc(手動管理記憶體)。堆釋放不當容易導致記憶體洩露。
靜態區:全域性變數和靜態變數儲存區。一般程式結束後,由系統釋放。巨集定義本質上就是字面值的替換,儲存在靜態區。
常量區:常量儲存區域,不允許修改。比如字串常量。
**區:存放函式體的二進位制**
現在來看一下最基本的c語言程式:
#include
js程式設計面試題總結。
function fn function add n function minus n add minus foreach item 另一種寫法 number.prototype.add add number.prototype.minus minus console.log 5 add 3 min...
面試題總結 html面試題)
附上鏈結 doctype 的作用是什麼?宣告一般位於文件的第一行,它的作用主要是告訴瀏覽器以什麼樣的模式來解析文件。一般指定了之後會以標準模式來 進行文件解析,否則就以相容模式進行解析。在標準模式下,瀏覽器的解析規則都是按照最新的標準進行解析的。而在相容模式下,瀏 覽器會以向後相容的方式來模擬老式瀏...
程式設計面試題
1.自定義乙個分頁函式,傳參當前頁數 總頁數,輸出以下 1.34567.10 123456.10 1 showpage是掐頭去尾的顯示數量 2 這個函式的重點就在於起始值和結束值的運算 3function page currentpage,totalpages,showpage 5 412 13 p...