1內(nèi)存分區(qū)模型
品牌網(wǎng)站建設(shè),C++程序在執(zhí)行時(shí),將內(nèi)存大方向劃分為***4個(gè)區(qū)域***
代碼區(qū):存放函數(shù)體的二進(jìn)制代碼,由操作系統(tǒng)進(jìn)行管理
全局區(qū):存放全局變量和靜態(tài)變量以及常量
棧區(qū):有編譯器自動(dòng)分配釋放,存放函數(shù)的參數(shù)值、局部變量等
堆區(qū):由程序員分配和釋放,若程序員不釋放,程序結(jié)束后,由操作系統(tǒng)回收
1.1 程序運(yùn)行前
在程序編譯后,生成exe可執(zhí)行程序,為執(zhí)行該程序前分為兩個(gè)區(qū)域:
代碼區(qū):
?存放CPU執(zhí)行的機(jī)器指令
?代碼區(qū)是共享的,共享的目的是對(duì)于頻繁執(zhí)行的程序,只需要在內(nèi)存中有一份代碼即可
?代碼區(qū)是只讀的
全局區(qū):
?全局變量和靜態(tài)變量存放在此
?全局區(qū)還包含了常量區(qū),字符串常量和其他常量也存放于此
?該區(qū)域的數(shù)據(jù)在程序結(jié)束后由操作系統(tǒng)釋放
不在全局區(qū)的:
?局部變量,const修飾的局部變量(局部常量)
在全局區(qū)的:
?全局變量——定義在函數(shù)體外的變量
?靜態(tài)變量——用關(guān)鍵字 static 修飾的變量
?字符串常量——使用雙引號(hào)的字符串,如 “Hello”
?全局常量——使用const修飾的全局變量
##1.2 程序運(yùn)行后
棧區(qū)
?由編譯器自動(dòng)分配釋放,存放函數(shù)的參數(shù)值、局部變量等
?**注意事項(xiàng):**不要反悔局部變量的地址,棧區(qū)開(kāi)辟的數(shù)據(jù)由編譯器自動(dòng)釋放
堆區(qū)
?由程序員分配釋放,若程序員不釋放,程序結(jié)束后由操作系統(tǒng)回收。
?C++中主要利用new在堆區(qū)開(kāi)辟內(nèi)存
##1.3 new 操作符
?C++中利用new操作符在堆區(qū)開(kāi)辟數(shù)據(jù)
?堆區(qū)開(kāi)辟的數(shù)據(jù),由程序員手工開(kāi)辟、手動(dòng)釋放、釋放利用操作符delete
?語(yǔ)法: new 數(shù)據(jù)類(lèi)型
廣州天河區(qū)珠江新城富力盈力大廈北塔2706
020-38013166(網(wǎng)站咨詢(xún)專(zhuān)線)
400-001-5281 (售后服務(wù)熱線)
深圳市坂田十二橡樹(shù)莊園F1-7棟
Site/ http://www.szciya.com
E-mail/ itciya@vip.163.com
品牌服務(wù)專(zhuān)線:400-001-5281
長(zhǎng)沙市天心區(qū)芙蓉中路三段398號(hào)新時(shí)空大廈5樓
聯(lián)系電話/ (+86 0731)88282200
品牌服務(wù)專(zhuān)線/ 400-966-8830
旗下運(yùn)營(yíng)網(wǎng)站:
Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號(hào)