C 變數及儲存區域小結

2021-05-28 09:12:46 字數 777 閱讀 9811

一.c++儲存區域:

1.堆: 在程式中new出來的變數放在堆中,只能由指標來操作,需要用delete去釋放。

2.棧:區域性變數,函式的形參放在棧中,在棧中的資料都是生命週期已知的。

3.全域性區(靜態去):全域性變數和靜態變數是放在這裡面的。程式結束後由系統釋放

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

5. **區:存放函式體的二進位制**

二.c++變數分為:

2.1 按照作用域來分

1.全域性變數 :存在全域性區,在程式結束後由作業系統**。

2.區域性變數: 存在棧中,由os負責它的釋放。

2.2 按照修飾符來分:

1.const常量 :存在常量區,在程式結束後釋放。

2.static變數: 存在全域性區,在程式結束後由os**

三. 作用域和生命週期

3.1作用域:可以使用變數的區域

1.全域性變數:整個原始檔,在乙個工程中乙個檔案裡定義的全域性變數,預設是extern的,在這個工程的另乙個檔案中重要宣告為extern就可以訪問了。

2.區域性變數:在區域性變數定義的最近外圍之內可以訪問。在之外是訪問不到得。

3.2 生命週期

1.全域性變數:定義之後,已知到程式結束

2.區域性變數:到退出 }

3.靜態全域性變數:放在了靜態區,第一次使用的時候進行初始化,並且以後都不會在進行初始化。生存到程式結束

4.靜態區域性變數:放在了靜態區,第一次使用的時候進行初始化。生存到程式結束,雖然在作用域之外不能訪問,但是變數依然是存在的。

C C 變數儲存區域

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

c 儲存區域

來自 在c 中,記憶體分成5個區,他們分別是堆 棧 自由儲存區 全域性 靜態儲存區和常量儲存區 棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清除的變數的儲存區。裡面的變數通常是區域性變數 函式引數等。堆,就是那些由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般...

不同變數的儲存區域

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