调用栈 · 后进先出

每次函数调用压入一个栈帧(参数 + 局部变量);返回时弹出,局部变量随帧销毁
程序代码(高亮 = 正在执行) int main() { int r = max(2, 3); cout << r; } int max(int a, int b) { int m = fact(a); return m; } int fact(int n) { ... return s; } 压栈 / 弹栈 调用栈(栈顶在上) 栈顶 top(新帧压这里) ↓ 栈底 bottom 压栈方向(向上增长) ← 活动 ← 活动 ← 活动 fact( ) 形参: n = 2 局部: s = 2 → return 2 max( ) 形参: a = 2 b = 3 局部: int m main( ) 局部: int r 最先压入 · 最后弹出(栈底)