c c 變數的儲存位置

2021-08-10 09:49:54 字數 436 閱讀 6332

變數的記憶體一般分為5部分

棧區stack:由編譯器自動分配釋放,,存放函式的引數值,區域性變數等,對棧的操作方式類似於資料結構中的棧

堆區heap :一般由程式設計師分配釋放,如果程式設計師不釋放,程式結束時可能由os揮手,但是它與資料結構中的堆是兩回事,分配方式類似於鍊錶。

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

文字常量區:常量字串放在這裡,程式結束後由系統釋放

程式**取:存放函式體的二進位制**

example:

int a = 0; 全域性初始化區

char *p1; 全域性未初始化區

main()

C C 中變數的儲存位置

1 首先,講下 堆 heap 和 棧 stack 的區別 乙個由 c c 編譯過的程式占用的記憶體分為一下幾個部分 1 棧區 stack 由編譯器自動分配釋放,存放函式的引數值,區域性變數的值等。這個棧的操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,...

變數儲存位置

1 首先,講下 堆 heap 和 棧 stack 的區別 乙個由 c c 編譯過的程式占用的記憶體分為一下幾個部分 1 棧區 stack 由編譯器自動分配釋放,存放區域性變數 2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結構中的堆是兩回事,分配...

c c 變數儲存

1 靜態儲存區,是在程式編譯時就已經分配好的,在整個執行期間都存在,如全域性變數 常量。2 棧上分配,函式內的區域性變數就是從這分配的,但分配的記憶體容易有限。3 堆上分配,也稱動態分配,如我們用new,malloc分配記憶體,用delete,free來釋放的記憶體。static全域性變數與普通的全...