国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

zhongmeizhi / 1401人閱讀

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


一、內(nèi)存

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

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

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

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

  • 全局區(qū):存放全局變量、靜態(tài)變量和常量(除了const修飾的局部變量)。程序結(jié)束時由操作系統(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的十進制地址為:" << (int)&l_a << endl;	cout << "全局變量g_a的十進制地址為:" << (int)&g_a << endl;	cout << "靜態(tài)變量s_a的十進制地址為:" << (int)&s_a << endl;	cout << "字符串常量a的十進制地址為:" << (int)a << endl;	cout << "const修飾的全局變量c_g_a的十進制地址為:" << (int)&c_g_a << endl;	cout << "const修飾的局部變量c_l_a的十進制地址為:" << (int)&c_l_a << endl;	return 0;}

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

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

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

  • 堆區(qū):由程序員分配(new)和釋放(delete),若程序員不釋放,程序結(jié)束時由操作系統(tǒng)回收。
int* funcation(){	//new關(guān)鍵字,可以將數(shù)據(jù)開辟到堆區(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:

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

[注]: 關(guān)于內(nèi)存更詳細的知識?深度剖析數(shù)據(jù)在內(nèi)存中的存儲?幾分鐘讓你了解什么是函數(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)建一個元素為10的整型數(shù)組,返回數(shù)組首元素的地址delete[] arr;//釋放一個數(shù)組 

測試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 引用基本使用和注意事項

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

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

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

	//①引用必須初始化	int a = 10;	int& b;//錯了!!!	//②引用一旦初始化就不可以更改了	int a = 10;	int c = 20;	int& b = a;	int& b = c; //錯了!!!

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

???

??????

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/120963.html

相關(guān)文章

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

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

    Jenny_Tong 評論0 收藏0
  • 系統(tǒng)地學習C++

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

    joyqi 評論0 收藏0
  • 編程語言排行榜迎來歷史性時刻!C語言和Java均敗了!

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

    philadelphia 評論0 收藏0
  • 初學者福音!可能是最適合你的Java學習路線和方法推薦。

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

    yanest 評論0 收藏0
  • 我是如何學習游戲引擎的?

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

    未東興 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<