成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【C++核心編程】黑馬程序員學(xué)習(xí)筆記(未完)(更新于2021/9/23)

zhongmeizhi / 1439人閱讀

摘要:只讀目的是防止程序意外地修改了它的指令。全局區(qū)存放全局變量靜態(tài)變量和常量除了修飾的局部變量。程序結(jié)束時(shí)由操作系統(tǒng)釋放。由編譯器自動(dòng)分配和釋放。注意不要返回局部變量的地址。


一、內(nèi)存

???1.1 內(nèi)存四區(qū)

C++程序在執(zhí)行時(shí),將內(nèi)存大致分為4個(gè)區(qū)域:代碼區(qū),全局區(qū),棧區(qū),堆區(qū)

  • 代碼區(qū):存放函數(shù)體的的二進(jìn)制代碼,操作系統(tǒng)管理。

??????特點(diǎn):①共享 :對(duì)于頻繁被執(zhí)行的程序,只需要在內(nèi)存中有一份代碼即可。
? ? ? ? ? ? ? ? ????②只讀:目的是防止程序意外地修改了它的指令。

  • 全局區(qū):存放全局變量、靜態(tài)變量和常量(除了const修飾的局部變量)。程序結(jié)束時(shí)由操作系統(tǒng)釋放。
//全局變量int g_a = 10;const int c_g_a = 10;int main(){	int l_a = 10;	//靜態(tài)變量	static int s_a = 10;		//常量:字符串常量/const修飾的變量(全局/局部變量)	const char* a = "hello";	const int c_l_a = 10;	cout << "局部變量l_a的十進(jìn)制地址為:" << (int)&l_a << endl;	cout << "全局變量g_a的十進(jìn)制地址為:" << (int)&g_a << endl;	cout << "靜態(tài)變量s_a的十進(jìn)制地址為:" << (int)&s_a << endl;	cout << "字符串常量a的十進(jìn)制地址為:" << (int)a << endl;	cout << "const修飾的全局變量c_g_a的十進(jìn)制地址為:" << (int)&c_g_a << endl;	cout << "const修飾的局部變量c_l_a的十進(jìn)制地址為:" << (int)&c_l_a << endl;	return 0;}

  • 棧區(qū):存放函數(shù)的參數(shù)值、局部變量。由編譯器自動(dòng)分配和釋放。

??????注意:不要返回局部變量的地址。

int* funcation(){	int a = 10;//存放在棧區(qū),棧區(qū)的數(shù)據(jù)在函數(shù)執(zhí)行完后自動(dòng)釋放	return &a;}int main(){	int* p = funcation();	cout <<"局部變量a的值為:"<< *p << endl;  //第一次正常打印,因?yàn)榫幾g器做了保留	cout << "局部變量a的值為:" << *p << endl;	return 0;}

  • 堆區(qū):由程序員分配(new)和釋放(delete),若程序員不釋放,程序結(jié)束時(shí)由操作系統(tǒng)回收。
int* funcation(){	//new關(guān)鍵字,可以將數(shù)據(jù)開(kāi)辟到堆區(qū)上	//指針本質(zhì)上也是局部變量,存放在棧區(qū)上,但是保存的數(shù)據(jù)在堆區(qū)	int* p = new int(10);	return p;}int main(){	int* p = funcation();	cout << *p << endl;	cout << *p << endl;	return 0;}

Tip:

  • 程序運(yùn)行前分為:代碼區(qū),全局區(qū)
  • 程序運(yùn)行后分為:棧區(qū),堆區(qū)

[注]: 關(guān)于內(nèi)存更詳細(xì)的知識(shí)?深度剖析數(shù)據(jù)在內(nèi)存中的存儲(chǔ)?幾分鐘讓你了解什么是函數(shù)棧幀的創(chuàng)建和銷毀

???1.2 new操作符

//new的基本用法int* p = new int(10);//在堆區(qū)創(chuàng)建整型變量,返回該變量的地址delete p;//釋放int* parr = new int[10];//在堆區(qū)創(chuàng)建一個(gè)元素為10的整型數(shù)組,返回?cái)?shù)組首元素的地址delete[] arr;//釋放一個(gè)數(shù)組 

測(cè)試delete

int* funcation(){	int* p = new int(10);	return p;}int main(){	int* p = funcation();	cout << *p << endl;	cout << *p << endl;	delete p;	cout << *p << endl;	return 0;}

二、引用

???2.1 引用基本使用和注意事項(xiàng)

??? ???作用:給變量起個(gè)別名。
??? ???語(yǔ)法數(shù)據(jù)類型 & 別名=原名

//eg.int a = 10;int& b = a;

??? ???注意
????????????①引用必須初始化。
????????????②引用一旦初始化就不可以更改了。

	//①引用必須初始化	int a = 10;	int& b;//錯(cuò)了?。。?/span>	//②引用一旦初始化就不可以更改了	int a = 10;	int c = 20;	int& b = a;	int& b = c; //錯(cuò)了?。。?/span>

???2.2 引用做函數(shù)參數(shù)

???

??????

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/120963.html

相關(guān)文章

  • 黑馬C++提高編程筆記未完

    摘要:文章目錄模板模板的概念函數(shù)模板函數(shù)模板語(yǔ)法函數(shù)模板注意事項(xiàng)函數(shù)模板案例普通函數(shù)與函數(shù)模板的區(qū)別普通函數(shù)與函數(shù)模板的調(diào)用規(guī)則模板的局限性類模板類模板語(yǔ)法類模板與函數(shù)模板區(qū)別類模板中成員函數(shù)創(chuàng)建時(shí)機(jī)類模板對(duì)象做函數(shù)參數(shù)類模 ...

    Jenny_Tong 評(píng)論0 收藏0
  • 系統(tǒng)地學(xué)習(xí)C++

    摘要:本書(shū)主要圍繞一系列逐漸復(fù)雜的程序問(wèn)題,以及用以解決這些問(wèn)題的語(yǔ)言特性展開(kāi)講解。你不只學(xué)到的函數(shù)和結(jié)構(gòu),也會(huì)學(xué)習(xí)到它們的設(shè)計(jì)目的和基本原理。因此我們把精力集中在最有價(jià)值的地方。本書(shū)不僅是對(duì)模板的權(quán)威解釋,而且本書(shū)還深入地介紹了其他一般的思想。 C++ 入門(mén)教程(41課時(shí)) - 阿里云大學(xué) C+...

    joyqi 評(píng)論0 收藏0
  • 編程語(yǔ)言排行榜迎來(lái)歷史性時(shí)刻!C語(yǔ)言和Java均敗了!

    摘要:持續(xù)更新多年的編程語(yǔ)言排行榜,迎來(lái)了一個(gè)歷史性時(shí)刻第一次擁有一個(gè)新的領(lǐng)導(dǎo)者編程語(yǔ)言。黑馬程序員推出課程體系,除了個(gè)月的大綱課程學(xué)習(xí)以外,同時(shí)提供個(gè)月課程內(nèi)容的在線學(xué)習(xí)提供給畢業(yè)之后進(jìn)入工作崗位的學(xué)員繼續(xù)學(xué)習(xí)。 ...

    philadelphia 評(píng)論0 收藏0
  • 初學(xué)者福音!可能是最適合你的Java學(xué)習(xí)路線和方法推薦。

    摘要:學(xué)習(xí)完多線程之后可以通過(guò)下面這些問(wèn)題檢測(cè)自己是否掌握,下面這些問(wèn)題的答案以及常見(jiàn)多線程知識(shí)點(diǎn)的總結(jié)在這里。可選數(shù)據(jù)結(jié)構(gòu)與算法如果你想進(jìn)入大廠的話,我推薦你在學(xué)習(xí)完基礎(chǔ)或者多線程之后,就開(kāi)始每天抽出一點(diǎn)時(shí)間來(lái)學(xué)習(xí)算法和數(shù)據(jù)結(jié)構(gòu)。 我自己總結(jié)的Java學(xué)習(xí)的系統(tǒng)知識(shí)點(diǎn)以及面試問(wèn)題,已經(jīng)開(kāi)源,目前已經(jīng) 35k+ Star。會(huì)一直完善下去,歡迎建議和指導(dǎo),同時(shí)也歡迎Star: https://...

    yanest 評(píng)論0 收藏0
  • 我是如何學(xué)習(xí)游戲引擎的?

    摘要:下面列舉了游戲開(kāi)發(fā)中常見(jiàn)的崗位以及兩條常見(jiàn)的協(xié)作開(kāi)發(fā)的流水線其實(shí)學(xué)習(xí)游戲引擎,前期對(duì)于任何崗位來(lái)說(shuō)路線都是相似的,基本上就是一個(gè)熟悉基本操作理解基本概念拓展專業(yè)知識(shí)的過(guò)程。當(dāng)然這不是絕對(duì)的,任何引擎的開(kāi)始階段和大成階段都是相似的。 這是【游戲開(kāi)發(fā)那些事】第51篇原創(chuàng) 前言:游戲引擎,表面...

    未東興 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<