一、儲存方式
變數從變數值存在的時間(即生存期)角度分:靜態儲存方式和動態儲存方式。靜態:由系統分配固定的儲存空間,全域性變數就儲存在靜態儲存區。動態:系統根據需要進行動態的分配儲存空間。在動態儲存區存放一下資料:(1)、函式形式引數; (2)、
自動變數(未加
static
宣告);(3)、
函式呼叫時的現場保護和返回位址;
二、記憶體中的儲存區
程式**區:存放函式體的二進位制**
靜態區/全域性區(
static
):全域性變數和靜態變數的儲存區域
堆區(heap
):程式設計師分配釋放
棧區(stack
):由編譯器自動分配釋放,存放函式的引數值,區域性變數的值
C 靜態儲存,動態儲存
什麼是靜態儲存,動態儲存 靜態儲存變數通常是在變數定義時就分定儲存單元並一直保持不變,直至整個程式結束。動態儲存變數是在程式執行過程中,使用它時才分配儲存單元,使用完畢立即釋放。典型的例子是函式的形式引數,在函式定義時並不給形參分配儲存單元,只是在函式被呼叫時,才予以分配,呼叫函式完畢立即釋放。如果...
C 筆記 自動儲存 靜態儲存和動態儲存
c 有3中管理資料記憶體的方式 自動儲存 靜態儲存和動態儲存,以這三種方式分配的資料物件各不相同。自動儲存。在函式內部定義的常規變數使用自動儲存空間,稱為自動變數,他們在所屬的函式被呼叫時自動產生,在該函式結束時消亡。自動變數是乙個區域性變數,其作用域為包含它的 塊。自動變數通常儲存在棧中。在執行 ...
靜態儲存分配和動態儲存分配
通常定義變數或者物件,編譯器在編譯時都可以根據該變數或物件的型別知道所需記憶體空間的大小,從而系統在適當的時候為他們分配確定的儲存空間,這種記憶體分配被稱為靜態儲存分配。有些操作物件只有在程式執行時才能確定,這樣編譯器在編譯時就無法為他們預定儲存空間,只能在程式執行時,系統根據執行時的要求進行記憶體...