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

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

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

2019-11-10 17:21:36
字體:
來源:轉載
供稿:網友

變量類型及生命期

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

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

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

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

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

變量初始化

未提供初始化的全局數據區中的變量將被系統自動初始化為0,堆和棧中的變量不被初始化。

局部變量與函數返回地址

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


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

圖片精選

主站蜘蛛池模板: 惠州市| 东阿县| 阿拉善右旗| 北海市| 大庆市| 永宁县| 双峰县| 浮山县| 安仁县| 监利县| 舟曲县| 普陀区| 家居| 通州市| 莱阳市| 上犹县| 清新县| 鹤壁市| 新巴尔虎左旗| 抚顺县| 革吉县| 汤原县| 韶山市| 元朗区| 九台市| 桦川县| 昌图县| 正镶白旗| 东方市| 西畴县| 开江县| 佛山市| 达尔| 临城县| 尖扎县| 无为县| 湘潭市| 芦溪县| 万宁市| 华坪县| 勃利县|