回覆列表
  • 1 # 使用者4912889400776

    RAM的特點就是高速儲存。形象的說:堆疊是一種儲存部件,即資料的寫入跟讀出不需要提供地址,而是根據寫入的順序決定讀出的順序 ;

    而在RAM中設定堆疊是為了儲存程式執行過程中的變數或資料的;提高程式碼的執行速率。

    例如:現在有一個函式呼叫了一個子函式;那麼呼叫前的一些變數或資料就要放入堆疊中;當子函式執行完後又把變數或資料從中堆疊取出來。

    但是你要注意堆和棧是兩種不同的資料結構;

    堆(作業系統): 一般由程式設計師分配釋放, 若程式設計師不釋放,程式結束時可能由OS回收,分配方式倒是類似於連結串列。

    棧(作業系統):由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧

    堆(資料結構):堆可以被看成是一棵樹,如:堆排序

    棧(資料結構):一種後進先出的的資料結構

    棧就是一條流水線,而流水線中加工的就是方法的主要程式,在分配棧時,由於程式是自上而下順序執行,就將程式指令一條一條壓入棧中,就像流水線一樣。而堆上站著的就是工作人員,他們加工流水線中的商品,由程式設計師分配:何時加工,如何加工。而我們通常使用new運算子為物件在堆上分配記憶體(C#),堆上尋找物件的任務交給控制代碼,而棧中由棧指標管理

  • 中秋節和大豐收的關聯?
  • 搬家用英語怎麼說?