程式的記憶體模型

2021-10-20 19:50:00 字數 850 閱讀 5506

記憶體四區

**區:存放函式體的二進位制**,由作業系統進行管理的

全域性區:存放全域性變數和靜態變數以及常量

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

堆區:由程式設計師分配和釋放,若程式設計師不釋放,程式結束時由作業系統**

記憶體四區的意義:

不同區域存放的資料,賦予不同的生命週期, 給我們更大的靈活程式設計。
程式執行前

**區:

​ 存放 cpu 執行的機器指令。

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

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

​ 全域性區:

​ 全域性變數和靜態變數存放在此.。

​ 全域性區還包含了常量區, 字串常量和其他常量也存放在此.。

​ 該區域的資料在程式結束後由作業系統釋放.。

總結:

c++中在程式執行前分為全域性區和**區

**區特點是共享和唯讀

全域性區中存放全域性變數、靜態變數、常量

常量區中存放 const修飾的全域性常量 和 字串常量

程式執行後

​ 堆區:

​ 由程式設計師分配釋放,若程式設計師不釋放,程式結束時由作業系統**。

​ 在c++中主要利用new在堆區開闢記憶體。

總結:

堆區資料由程式設計師管理開闢和釋放。

堆區資料利用new關鍵字進行開闢記憶體。

程式的記憶體模型

c 程式在執行時,將記憶體劃分為4個區域 記憶體四區的意義 不同區域存放的資料,富裕不同的生命週期,給我們更大的靈活程式設計 在程式編譯後,生成了exe可執行程式,未執行該程式前分為兩個區域 區 全域性區 示例 include using namesapce std int g a 10 int g...

c 程式的記憶體模型

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

C 程式的記憶體模型

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