來自:
在c++中,記憶體分成5個區,他們分別是堆、棧、自由儲存區、全域性/靜態儲存區和常量儲存區
棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清除的變數的儲存區。裡面的變數通常是區域性變數、函式引數等。
堆,就是那些由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般乙個new就要對應乙個delete。如果程式設計師沒有釋放掉,那麼在程式結束後,作業系統會自動**。
自由儲存區,就是那些由malloc等分配的記憶體塊,他和堆是十分相似的,不過它是用free來結束自己的生命的。
全域性/靜態儲存區,全域性變數和靜態變數被分配到同一塊記憶體中,在以前的c語言中,全域性變數又分為初始化的和未初始化的,在c++裡面沒有這個區分了,他們共同占用同一塊記憶體區。
常量儲存區,這是一塊比較特殊的儲存區,他們裡面存放的是常量,不允許修改。
返回 c++學習筆記
C語言儲存區域
一 c語言程式的儲存區域 由c語言 文字檔案 形成可執行程式 二進位制檔案 需要經過編譯 彙編 連線三個階段。編譯過程把c語言文字檔案生成匯程式設計序,彙編過程把匯程式設計序形成二進位制機器 連線過程則將各個原始檔生成的二進位制機器 檔案組合成乙個檔案。c語言編寫的程式經過編譯 連線後,將形成乙個統...
C 變數及儲存區域小結
一.c 儲存區域 1.堆 在程式中new出來的變數放在堆中,只能由指標來操作,需要用delete去釋放。2.棧 區域性變數,函式的形參放在棧中,在棧中的資料都是生命週期已知的。3.全域性區 靜態去 全域性變數和靜態變數是放在這裡面的。程式結束後由系統釋放 4.常量區 常量字串就是放在這裡的。程式結束...
C語言程式的儲存區域
c語言程式的儲存區域 c語言編寫的程式經過編繹 鏈結後,將形成乙個統一的檔案,它由幾個部分組成,在程式執行時又會產生幾個其他部分,各個部分代表了不同的儲存區域 段 code or text 段由程式中的機器碼組成。在c語言中,程式語句進行編譯後,形成機器 在執行程式的過程中,cpu的程式計數器指向 ...