搜尋

首頁  >  問答  >  主體

c++ - 变量的内存分配

黄舟黄舟2766 天前509

全部回覆(4)我來回復

  • ringa_lee

    ringa_lee2017-04-17 14:52:54

    運行呀。 。編譯是編譯成二進位檔而已。 。

    回覆
    0
  • PHPz

    PHPz2017-04-17 14:52:54

    編譯時被分配的空間,這個static int a會佔用最終可執行檔的靜態區。
    運作的時候,作業系統直接分配記憶體把整個執行檔載入內存,a直接就獲得記憶體空間了。

    回覆
    0
  • 阿神

    阿神2017-04-17 14:52:54

    都是編譯時分配,static在靜態區,而a在堆疊中。

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 14:52:54

    static變數是編譯時初始化,運行是分配記憶體。初始化的局部變數是編譯時初始化,運行時分配記憶體;未初始化的局部變數會被忽略。編譯好的執行映像,static變數應該存在data段,初始化的局部變數應該是bss段。運行之後,static變數被分配到常數儲存區,初始化的局部變數分配到堆疊上。

    回覆
    0
  • 取消回覆