變數所在區域

2021-10-08 15:50:57 字數 712 閱讀 6570

在c/c++中,記憶體分成5個區,他們分別是自由儲存區全域性/靜態儲存區常量儲存區

:就是那些由編譯器在需要的時候分配,在不需要的時候自動清除的變數的儲存區。裡面的變數通常是區域性變數函式引數等。

:就是那些由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般乙個new就要對應乙個delete。如果程式設計師沒有釋放掉,那麼在程式結束後,作業系統會自動**。

自由儲存區:就是那些由malloc等分配的記憶體塊,他和堆是十分相似的,不過它是用free來結束自己的生命的。

全域性儲存區靜態儲存區):全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數靜態變數在一塊區域, 未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域。程式結束後有系統釋放。

常量儲存區:這是一塊比較特殊的儲存區,他們裡面存放的是常量,不允許修改。

C C 變數儲存區域

乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 程式執行時由編譯器自動分配,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 在記憶體開闢另一塊儲存區域。一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料...

變數存放的區域

int a 0 class someclass int main 1 棧區 stack 由編譯器自動分配釋放 存放為執行函式而分配的區域性變數 函式引數 返回資料 返回位址等。2 堆區 heap 一般由程式設計師分配釋放,new,malloc之類的,若程式設計師不釋放,程式結束時可能由os 3 全域...

不同變數的儲存區域

記憶體分配方式有三種 1 從靜態儲存區域分配。內存在程式編譯的時候就已經分配好,這塊內存在程式的整個執行期間都存在。例如全域性變數,static 變數。2 在棧上建立。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內置於處理器的指令集...