記憶體儲存 全域性 靜態儲存區 常量儲存區

2021-10-03 11:10:08 字數 718 閱讀 5213

全域性/靜態儲存區:全域性變數和靜態變數被分配到同一塊記憶體中;

常量儲存區:存放的是常量,是不允許修改的。

靜態儲存是main函式執行前分配記憶體並初始化;常量儲存是固化在執行檔案上的資料。

棧的方向和平台有關,一般來說,windows由高位址向低位址增長,linux相反,但基於linux的第三方系統得看實際情況才知道。

常量儲存區裡面的資料是放在**段裡的,不佔記憶體。

靜態儲存區是在記憶體空間中的,在其所屬的類(或檔案)中是全域性的。

請注意:

c和c++中,const修飾的變數所在的儲存區是不一樣的。

在c中,const修飾的變數儲存在「棧」中。

在c++中,const修飾的變數被定義為乙個常量是放在**段裡的,是在常量儲存區中的。

原因如下(linux環境下):

在c中,如圖的**是可以編譯(gcc編譯)通過,並且可以改變的,說明const修飾的不是乙個常量。

同樣的**,在c++下編譯不通過(g++編譯),如圖:

堆 棧 自由儲存區 全域性 靜態儲存區和常量儲存區

在c 中,記憶體分成5個區,他們分別是堆 棧 自由儲存區 全域性 靜態儲存區和常量儲存區 1.棧由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數 函式引數等。棧空間初始化的時候,空間大小就確定了,棧指標指向棧頂 高位址 壓入棧時 棧指標減減,想低位址移動。棧...

堆 棧 自由儲存區 全域性 靜態儲存區和常量儲存區

堆 棧 自由儲存區 全域性 靜態儲存區和常量儲存區 在c 中,記憶體分成5個區,他們分別是堆 棧 自由儲存區 全域性 靜態儲存區和常量儲存區。棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數 函式引數等。堆,就是那些由new分配的記憶體塊,他們的...

堆,棧,靜態儲存區和常量儲存區

在c 中,記憶體分成4個區,他們分別是堆,棧,靜態儲存區和常量儲存區 1 棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清除的變數的存 儲區.裡面的變數通常是區域性變數,函式引數等.2 堆,又叫自由儲存區,它是在程式執行的過程中動態分配的,它最大的特性就是動.態性.由new分配的記憶體塊,...