2020 12 16 c語言四大記憶體分割槽

2021-10-12 06:35:17 字數 657 閱讀 8283

#c語言四大記憶體分割槽

分別是棧區(stack)、堆區(heap)、bss段(bss)、資料段(data)、**段(text)。

1.棧:

在函式中定義的變數存放的記憶體區域。常見的int、float、char等變數均存放於棧區中,它的特點是由系統自動分配與釋放,不需要程式設計師考慮資源**的問題,方便簡潔。ps:棧區的位址分配是從記憶體的高位址開始向地位址分配;

2.堆:

通過指令自主向系統申請的記憶體區域,大小由自己決定,它在使用完後同樣需要自己通過指令去釋放該區域記憶體,否則將有可能出現記憶體的浪費與溢位。

3.bss區:

通常是指用來存放程式中未初始化的全域性變數的一塊記憶體區域,由static修飾,bss是英文block started by symbol的簡稱,bss段屬於靜態記憶體分配。ps:靜態變數僅在第一次建立時初始化一次,之後自動跳過初始化語句。全域性變數與靜態變數均由系統分配和釋放記憶體,若未對它們進行初始化操作,系統將自動將其值設定為0。(堆區與棧區則不會)

4.**段:

**段(code segment/text segment)通常是指用來存放程式執行**的一塊記憶體區域。這部分區域的大小在程式執行前就已經確定,並且記憶體區域通常屬於唯讀, 某些架構也允許**段為可寫,即允許修改程式。在**段中,也有可能包含一些唯讀的常數變數,例如字串常量等。常見的使用:

C C 的四大記憶體分割槽

正確的理解c c 程式的記憶體分割槽,是合格程式猿的基本要求。網路上流形兩大版本記憶體分割槽,分別為 1.五大記憶體分割槽 堆 棧 全域性 靜態儲存區 自由儲存區和常量儲存區。2.五大記憶體分割槽 堆 棧 全域性 靜態儲存區 字串常量區和 區。且不論以上兩種分割槽孰是孰非,孰優孰劣,我認為具體的記憶...

四大內部類

1.例項內部類 public class shilitest 因為main方法是乙個靜態方法,而內部類不是靜態內部類,所以需要依託外部類物件 構建 訪問 param args public static void main string args 2.靜態內部類 public class stati...

四大內部類簡單小結

1.例項內部類 類的內部,方法外部,沒有 static 修飾 例項內部類也叫成員內部類,是最普通的內部類 1 例項內部類物件依託於外部類物件。2 物件構建方式 先構建外部類物件,再構建內部類物件 3 可以訪問外部類所有成員 靜態,非靜態 即使是private的 例如 classouter outer...