C 基礎學習筆記02 記憶體

2021-10-03 22:44:14 字數 896 閱讀 3809

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

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

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

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

記憶體四區意義:不同區域存放的資料,賦予不同的生命週期

在程式編譯後,生成了exe可執行程式,未執行該程式前分為兩個區域

**區:

存放cpu可執行的機器指令

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

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

全域性區:

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

全域性區還包含了常量區,字串常量和其他常量

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

總結:程式執行前分為全域性區和**區

**區特點是共享和唯讀

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

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

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

注意事項:不要返回區域性變數的位址,棧區開闢的資料由編譯器自動釋放

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

int *a=new int(10);

c++中用new操作符在堆區開闢資料

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

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

int *a=new int(10);

delete a;

開闢陣列空間:

int *arr=new int(10); //開闢10個元素的陣列空間

delete arr; //釋放陣列空間

Linux學習筆記02 基礎命令

linux系統上,建立使用者的時候,預設情況會給我們建立乙個使用者組 名稱與使用者名稱相同 檔案型別 最常見的3種 檔案 目錄d 類似資料夾 連線l 類似快捷方式 檔案的歸屬 擁有者u 屬於組g 其他人o 下圖所示 包含三個部分 第乙個部分 drwxr xr x 10個字元,代表不同意義 第乙個字元...

Objective C 基礎知識學習筆記02

類 屬性方法 幹什麼 繼承特性 子類繼承父類,繼承父類的所有屬性和方法。people.nsobject 繼承類的三大特性 父類不能使用子類的方法。繼承並不是子類全部把父類的所有方法都拿過來了,而是子類繼承過來了,父類仍然也存在這些 當子類擁有父類同名的方法時,子類只會呼叫子類的方法,而不會呼叫從父類...

Pandas學習筆記 02 pandas基礎

第二章 pandas基礎 目錄2 基本資料結構 3 常用基本函式 4 視窗物件 read csvread tableread excel 公共引數 header none表示第一行不作為列名 index col表示把某一列或幾列作為索引 usecols表示讀取的列,預設讀取所有的列 parse da...