1. 程式人生 > >C語言復習:內存模型2

C語言復習:內存模型2

com 一個 函數調用模型 ++ white hit 運行 技術分享 空間

函數調用模型

基本原理

技術分享圖片技術分享圖片

實際上就是不斷的從一個內存跳到另一個內存。

函數調用變量傳遞分析

  1. 一個主程序有n函數組成,c++編譯器會建立有幾個堆區?有幾個棧區?

    答:一個程序只有一個堆區和一個棧區。

  2. 函數嵌套調用時,實參地址傳給形參後,C++編譯器如何管理變量的生命周期?

    上一級的變量在下一級調用中可以使用,傳參後上級變量依舊存在。下級的變量不能在上級中調用,在堆區開辟的變量除外。上級下級變量的生命周期主要是由於棧的特點決定的:先入後出,後入先出

分析:函數A,調用函數B,通過參數傳遞的變量(內存空間能用嗎?)

技術分享圖片

提示:建立正確的程序運行內存布局是學好C的關鍵。

註意野指針;

棧區的生長方向;

C語言復習:內存模型2