📍 基本觀念

一群由相同性質的元素所組成,有先進後出、後進先出的特性(First-in-Last-out, FILO)。

用 Top(指標)來表示堆疊的狀態。

就好像放在箱子裡的書本,只能從最上面開始取出。

📍 堆疊的應用

副程式呼叫與返回

利用堆疊後進先出的特性,來解決副程式呼叫問題

call function 時的堆疊過程

  1. 當開始編譯main的時候,編譯器會向記憶體要一段空間,並且生成一個堆疊,並把main這個的記憶體位置當作堆疊的第一個item push到堆疊中,此時堆疊top=0。
  2. 當main程式call 到第一個 sub-function 1 時,會把 sub-function 1 的記憶體位置push到堆疊裡面,此時堆疊top=1
  3. 當sub function 1 call 到第二個 sub-function 2 時,會把 sub-function 2 的記憶體位置push到堆疊裡面,此時堆疊top=2