c 基礎複習 程式的記憶體模型

2021-09-25 13:25:07 字數 926 閱讀 5247

存放cpu執行的機器指令

**區是共享的,共享的目的是對於頻繁被執行的程式,只需要在記憶體中有乙份**

**區是唯讀的,唯讀的原因是防止程式意外的修改了它的指令

全域性變數和靜態變數存放在這

全域性區還包括了常量區,字串常量和其他常量也存放在這

該區域在程式結束後由作業系統進行釋放

#include using namespace std;

/*全域性變數*/

由編譯器自動分配釋放,存放函式的引數值和區域性變數等。

#include using namespace std;

/* 棧區的注意事項——不要返回區域性變數的位址

* 棧區的資料由編譯器管理開闢和釋放

*/int* fun(int b) //形參也存放在棧區

int main()

由程式設計師分配釋放,如果不釋放,系統**

#include using namespace std;

/* 堆區的資料只要不釋放,就一直存在

當使用new的時候,背後完成的操作

獲得一塊記憶體空間

呼叫建構函式

返回正確的指標

使用delete時

呼叫析構函式

釋放記憶體

C 基礎(2) 程式的記憶體模型

c 的記憶體模型分為四大區 區 存放函式體的二進位制 由作業系統進行管理的 全域性區 存放全域性變數和靜態變數以及常量 棧區 由編譯器自動分配釋放,存放函式的引數值,區域性變數等 堆區 由程式設計師分配和釋放,若程式設計師不釋放,程式結束時由作業系統 存放cpu執行的機器指令 區是共享的,共享的目的...

c 程式的記憶體模型

記憶體分為四個區域,不同區域存放的資料賦予不同的生命週期,靈活程式設計 區 存放函式體的二進位制 由作業系統進行管理 全域性區 存放全域性變數以及常量,由作業系統釋放 棧區 存放函式的引數值,區域性變數,由編譯器自動分配釋放 堆區 由程式設計師分配和釋放,若程式設計師不釋放,程式結束時由作業系統 共...

C 程式的記憶體模型

c 的個人學習之路!認識記憶體模型,才能更好的理解cpp物件導向的實現 c 的記憶體可以劃分為四個大區域 意義 不同區域存放的資料,賦予不同的生命週期,提高程式設計的靈活性。程式編譯後,生成了可執行程式,該程式為執行前分為兩個區域 這兩個區域執行前就已經被系統劃分存在了,所以在任何時刻區域的資料被讀...