變數存放的區域

2021-08-22 02:37:23 字數 566 閱讀 6584

int a=0;

class someclass;

int main()

1、棧區(stack)— 由編譯器自動分配釋放 ,存放為執行函式而分配的區域性變數、函式引數、返回資料、返回位址等。

2、堆區(heap) — 一般由程式設計師分配釋放, new, malloc之類的,若程式設計師不釋放,程式結束時可能由os** 。

3、全域性區(靜態區)(static)— 存放全域性變數、靜態資料、常量。程式結束後由系統釋放。

4、文字常量區— 常量字串就是放在這裡的。程式結束後由系統釋放。

5、程式**區— 存放函式體(類成員函式和全域性函式)的二進位制**。

a,全域性變數,全域性區;

b,成員變數,堆區;(我是這樣理解的,因為物件要申請,會放在堆區,所以類的成員也就是放在堆區)

c,靜態變數,靜態區;

d,方法變數,棧區;

p,方法變數,棧區,指向堆區的物件。

c c 中變數存放的區域

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

const static變數存放位置

我們將以下面的例子介紹const變數和static變數的存放位置 static int val a 1 初始化的靜態變數 int val b 2 全域性變數 const int val c 3 const 全域性變數 static int val d 未初始化的靜態變數 int val e 未初始化...

棧中變數的存放 strcpy

函式形參和區域性變數是儲存在棧中的,而棧是 從高位址向低位址擴充套件的。include int main void if flag else return 0 答 破解上述加密的關鍵在於利用攻破strcpy 函式的漏洞。所以使用者在向 passwd 快取輸入隨機密碼的時候並沒有提前檢查 passwd...