深入理解C Four 記憶體四區全域性區剖析

2021-07-08 14:53:47 字數 323 閱讀 2857

我們今天來剖析一下c語言的全域性區,我們上一節已經對棧區進行啦剖析.

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

1.1全域性區作用: 全域性變數和靜態變數的放在一塊的, 初始化的全域性變數和靜態變數放在一塊區域;未初始化的全域性變數和未初始化的靜態變數在相鄰的另乙個區域,該區域在程式結束後由作業系統釋放。因為全域性區(靜態區)和常量區都是程式執行完後由作業系統釋放。所有我將常量區併入全域性區

常量區是是指:字串常量和其他常量的儲存位置,程式結束後由作業系統釋放。

深入理解C語言 深入理解記憶體四區

當陣列做函式引數的時候,會退化為乙個指標 此時在函式內是得不到陣列大小的 因此,陣列做函式引數的時候需要傳遞陣列大小,也就是多傳遞乙個引數 void func int arr,int num 若存在以上函式,c c 編譯器在編譯的時候,會將陣列優化為乙個指標,指向陣列的首位址,因此無法通過sizeo...

深入理解資料型別 變數屬性 記憶體四區和指標

資料型別可理解為建立變數的模具 模子 是固定記憶體大小的別名。資料型別的作用 編譯器預算物件 變數 分配的記憶體空間大小。既能讀又能寫的記憶體物件,稱為變數 若一旦初始化後不能修改的物件則稱為常量。記憶體四區 棧區 stack 也叫臨時區,由編譯器自動分配釋放,存放函式的引數值,區域性變數的值等。堆...

記憶體四區筆記

include include include void print arr int buf,int n int main 棧中陣列 void malloc size t size char p1 malloc sizeof char 1000 free p1 int p malloc sizeof...