全域性/靜態儲存區:全域性變數和靜態變數被分配到同一塊記憶體中;
常量儲存區:存放的是常量,是不允許修改的。
靜態儲存是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分配的記憶體塊,...