国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++-作用域和生命周期

2019-11-10 17:29:39
字體:
來源:轉載
供稿:網(wǎng)友

變量類型及生命期

一個程序在其運行期間,它的程序代碼和數(shù)據(jù)會被分別存儲在4個不同的內存區(qū)域。 這里寫圖片描述 程序代碼區(qū):程序的各函數(shù)代碼存放在此區(qū)域中;

全局數(shù)據(jù)區(qū):程序的全局數(shù)據(jù)(如全局變量)和靜態(tài)數(shù)據(jù)(static)存放在此區(qū)域中;此區(qū)域中的數(shù)據(jù)由C++編譯器建立,對于定義時沒有初始化的變量,系統(tǒng)會自動將其初始化為0。這個區(qū)域中的數(shù)據(jù)會一直保存,直到程序結束時才由系統(tǒng)負責回收。

棧區(qū):程序的局部數(shù)據(jù)(在函數(shù)中定義的數(shù)據(jù))存放在此區(qū)域中;需要注意static類型的局部變量存儲在此。只有當函數(shù)被調用時,系統(tǒng)才在棧區(qū)中為它們分配存儲空間,并且不會對分配的存儲單元做初始化,一旦函數(shù)調用完成,系統(tǒng)就會回收這些變量在棧區(qū)中的存儲單元。

堆區(qū):程序的動態(tài)數(shù)據(jù)(new,malloc)就在此區(qū)域中分配存儲空間;用完之后由程序員用delete或free將其歸還給系統(tǒng)。

靜態(tài)變量可分為靜態(tài)全部變量和靜態(tài)局部變量,前者的作用于是整個程序范圍,后者的作用域局限于定義它的語句塊。靜態(tài)局部變量的作用域與普通局部變量的作用域是相同的,但它與全局變量有著同樣的生命期。

變量初始化

未提供初始化的全局數(shù)據(jù)區(qū)中的變量將被系統(tǒng)自動初始化為0,堆和棧中的變量不被初始化。

局部變量與函數(shù)返回地址

當使用指針或引用從函數(shù)中返回一個地址時需要小心,一定不要返回局部變量的指針或引用。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 金阳县| 民权县| 肃北| 新乡县| 津南区| 灵丘县| 女性| 灌阳县| 长垣县| 诸暨市| 吉安市| 金堂县| 安徽省| 济源市| 依兰县| 彭泽县| 民勤县| 六盘水市| 个旧市| 涿鹿县| 祁东县| 乌拉特前旗| 怀化市| 铁岭县| 杭锦后旗| 新泰市| 佛冈县| 扶余县| 纳雍县| 卓资县| 彝良县| 福鼎市| 宝山区| 昔阳县| 壤塘县| 油尖旺区| 五家渠市| 神农架林区| 温泉县| 濮阳市| 玛多县|