C 程式設計知識點 記憶體分割槽

2021-10-11 22:56:49 字數 929 閱讀 7879

c++程式在執行時,將記憶體大方向劃分為4個區域:

記憶體四區的意義:

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

1.存放 cpu 執行的機器指令;

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

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

4.在程式編譯後,生成了exe可執行程式,該區在未執行該程式前設立。

1.在程式編譯後,生成了exe可執行程式,該區在未執行該程式前設立;

2.全域性變數和靜態變數存放在此;

3.全域性區還包含了常量區, 常量區中存放 const修飾的全域性常量和字串常量;

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

1.該區在程式執行後設立;

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

3.不要返回區域性變數的位址,棧區開闢的資料由編譯器自動釋放。

1.該區在程式執行後設立;

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

3.在c++中主要利用new關鍵字在堆區開闢記憶體。

1.c++中利用new操作符在堆區開闢資料;

2.堆區開闢的資料,由程式設計師手動開闢,手動釋放,釋放利用操作符delete

3.利用new建立的資料,會返回該資料對應的型別的指標。

基本語法:

new 資料型別

示例:int* a = new int(10);

//利用delete釋放堆區資料

delete a;

C 知識點總結 C 記憶體分割槽

棧區 由系統自動分配和釋放 堆區 由程式設計師主動申請記憶體,並由程式設計師自己釋放 全域性靜態區 1 全域性初始化資料區 靜態資料區 data segment 只初始化一次,資料段通常是指用來存放程式中已初始化的全域性變數的一塊記憶體區域。資料段屬於靜態記憶體分配。data段中的靜態資料區存放的是...

C 高階程式設計知識點

一.繼承中基類和子類的特徵 1.c 不支援多重繼承,支援多重介面繼承 2.c 子類只有乙個基類,乙個父類可以有多個子類 3.不允許迴圈繼承 相互繼承 4.繼承可以個隔代繼承 5.子類可以繼承父類的可繼承屬性和函式 6.繼承只能單繼承 二.繼承和封裝的定義 1.繼承 繼承允許我們通過乙個類定義另乙個類...

C 程式設計小知識點

1 this指標可指向常量型資料 可指向成員函式,不可以指向靜態成員函式。this指標始終指向呼叫成員函式的物件。2 巨集定義語句 define bufsize 100 const int bufsize 100 3 模板類的基類和派生類都可以是模板類或非模板類。4 類a宣告為類b的友元後,類a直接...