c程式的記憶體分布

2021-06-27 07:29:54 字數 555 閱讀 1408

一、

c程式的記憶體分布

既然static是用來修飾變數和函式的,而變數和函式又是組成

c程式必不可少的,

c程式的

記憶體分布圖如下。 c

程式由下面5

部分組成: 1

)正文段

——cpu

執行的機器指令部分;乙個程式只有乙個副本;唯讀,防止程式由於意外事故而修改自身指令;

2)初始化資料段(資料段)

——在程式中所有賦了初值的全域性變數,存放在這裡。

3)非初始化資料段(

bss段)

——在程式中沒有初始化的全域性變數;核心將此段初始化為0。

4)棧——5)堆

——動態儲存

區。是向高位址擴充套件的資料型別,是自下向上的擴充套件方式。

c程式記憶體分布圖

上面的c程式分布圖很明顯的告訴我們,變數是儲存在棧區或者堆區或者bss段或者data段,變數的儲存域為什麼會有所不同呢?其實原因很簡單,說白了就 是與他們定義在程式的不同地方,有沒有static關鍵字修飾有關啦,定義在不同的地方也說明了他們有著不同的作用域。

C程式的記憶體分布

目錄 1.c程式記憶體分布 2.示例詳解 2.1檢視記憶體分布 2.2未初始化全域性變數 2.3未初始化靜態變數 2.4已初始化靜態變數 2.5初始化全域性變數 乙個典型的c程式的記憶體布局包含下面幾個部分 1 text segment code segment 文字 段 2 initialized...

C程式記憶體分布

1 棧區 stack 由編譯器自動分配釋放,存放函式的引數值,區域性變數值等。2 堆區 heap 一般由程式設計師分配釋放,隨叫隨到,揮之即走。3 全域性 靜態區 static 全域性變數和靜態變數的儲存是放在一起的,在程式編譯時分配。4 文字常量區 存放常量字串。5 程式 區 存放函式體 包括類的...

C 程式記憶體分布

程式中變數的記憶體分配方式 程式執行時需要占用多大的空間需要在編譯時確定,便於作業系統為程式分配適當的記憶體空間。從靜態儲存區分配 程式的全域性變數和靜態變數都在這裡分配,且在編譯時已經分配好,在程式終止前被作業系統 在棧上建立 在函式呼叫時,函式的形參和區域性變數都在棧上建立,函式執行完畢時這些記...