變數的生命空間

2021-04-14 00:52:38 字數 614 閱讀 9703

關於變數的存放.很多載自c++大師lippman的< c++ primer>

1.區域性變數 ( localscope)

就是定義在函式體中的變數或物件,位於程式棧中,執行完畢時不復存在,所以不應該返回區域性物件.應傳入物件引用或指標.定義時不被自動初始化.

2.file scope

如果物件宣告在函式外,就是所謂的file scope,則從其宣告點到檔案尾端都是可見的,file scope內的物件也具備static scope,定義時自動初始化為0

3.heap memory

不論local scope或file scope,對我們而言,都是系統自動管理的,第二類儲存形式稱為dynamic extent ,也稱 heap memory,堆記憶體,其記憶體必須由程式設計師自行管理,new ,detele

heap new出來的東西都沒有初始化,不能在配置heap陣列的同時為其元素設初值,  

int    *pia =   new  int[24]; pia指向24個int的首位址,這24個值都未初始化,使用完heap記憶體時要delete 或delete 掉.

C變數儲存空間 作用域 生命週期

變數分類 1.全域性變數 2.全域性靜態變數 3.區域性變數 4.區域性靜態變數 5.暫存器變數 register 變數型別 作用域儲存空間 生命週期 全域性變數 整個程式可見 靜態區 data.bss 整個程式執行期間 全域性靜態變數 整個程式可見 靜態區 data.bss 整個程式執行期間 區域...

變數的生命週期

from 今天在論壇上看到有朋友發帖問道 既然靜態全域性變數與全域性變數都儲存在全域性資料區,為什麼作用域卻不一樣呢?也許答案非常簡單 c 就是這麼規定的,靜態全域性變數與全域性變數的唯一區別就是作用域不同。對乙個c 變數來說,有兩個屬性非常重要 作用域和生命週期,它們從兩個不同的維度描述了乙個變數...

變數的生命週期

1 全域性變數 作用域 全域性作用域 只需要在乙個原始檔中定義,就可以作用於所有的原始檔 生命週期 程式執行期一直存在 記憶體分布 全域性 靜態儲存區 注意 如果再兩個檔案中都定義了相同名字的全域性變數,則連線錯誤 變數重定義。2 全域性靜態變數 生命週期 程式執行期一直存在 作用域 檔案作用域 只...