免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

C++引用!他是坤坤也是雞哥-創新互聯

在這里插入圖片描述

創新互聯建站主要為客戶提供服務項目涵蓋了網頁視覺設計、VI標志設計、營銷型網站建設、網站程序開發、HTML5響應式網站建設手機網站開發、微商城、網站托管及成都網站改版、WEB系統開發、域名注冊、國內外服務器租用、視頻、平面設計、SEO優化排名。設計、前端、后端三個建站步驟的完善服務體系。一人跟蹤測試的建站服務標準。已經為濕噴機行業客戶提供了網站營銷推廣服務。
  • 👑專欄內容:C++學習筆記
  • ?個人主頁:子夜的星的主頁
  • 💕座右銘:日拱一卒,功不唐捐

目錄
  • 一、前言
  • 二、引用
    • 1、引用的概念
    • 2、引用的聲明
    • 3、引用的特性
      • Ⅰ、 引用在定義時必須初始化
      • Ⅱ、 一個變量可以有多個引用
      • Ⅲ、引用一旦引用一個實體,再不能引用其他實體
    • 4、常引用
  • 三、使用場景
    • 1、做參數
    • 2、做返回值
  • 四、引用和指針的區別
  • 五、總結


一、前言

作為一名ikun,我最喜歡的明星就是坤坤,但是坤坤又不只叫坤坤,因為他的成名之作《雞你太美》ikun們就經常親切的叫他雞哥

這個過程中,雞哥就是我們 ikun 給偶像坤坤起的外號。而C++中也有這一功能可以給自己喜歡的變量起外號。下面讓我們和坤坤一起,學習C++的引用!

在這里插入圖片描述

二、引用 1、引用的概念

引用同樣是C++相對于C語言的又一個擴充。引用可以看做是數據的一個別名,通過這個別名和原來的名字都能夠找到這份數據。引用不是新定義一個變量,編譯器不會為引用變量開辟內存空間,它和它引用的變量共用同一塊內存空間。

直接看概念可能有點抽象,我們想一下偶像坤坤被起外號的過程,就能理解了。坤坤又被粉絲們戲稱為雞哥,這里雞哥就是偶像坤坤的別名,代表的都是坤坤這個人。世界不會因為粉絲們給坤坤起了個別名叫雞哥,就憑空創造出一個人叫雞哥。

2、引用的聲明

聲明方法如下:

類型 & 引用變量名(對象名) = 引用實體;

注意:這里的&符號并不是C語言中的取地址的意思,在C++中&又有引用的意思。
注意:引用類型必須和引用實體是同種類型的。

下面舉個例子:

void ikun()
{string kunkun = "我是坤坤";
	string& jige = kunkun; //給kunkun取個外號叫jige
	printf("kunkun的地址:%p\n", &kunkun);
	cout<< "kunkun的打印:"<< kunkun<< endl;
	printf("jige的地址:%p\n", &jige);
	cout<< "jige的打印:"<< jige<< endl;

}
int main()
{ikun();
	return 0;
}

在這里插入圖片描述

3、引用的特性 Ⅰ、 引用在定義時必須初始化

下面本ikun以身試法,寫一段沒有初始化的引用:

void ikun()
{string kunkun = "我是坤坤";
	string& jige;
	cout<< "kunkun的打印:"<< kunkun<< endl;
	cout<< "jige的打印:"<< jige<< endl;
}

在這里插入圖片描述

Ⅱ、 一個變量可以有多個引用

這個理解起來很簡單。就像我的偶像坤坤。他在經典歌曲《雞你太美》中被ikun們稱為雞哥,但是后來,有一撥人喜歡上了他在這個節目中的籃球表演,于是,有人又以藍球哥稱呼他。還有一批人,喜歡上了他的中分發型,于是另外一批人,以中分哥稱呼他。

這里的雞哥、中分哥、籃球哥都是坤坤的外號或者說是坤坤的別名。

C++里面的引用也是一樣,你可以給你喜歡的變量取很多的別名。

下面我舉個例子:

void ikun()
{string kunkun = "我是坤坤";
	string& jige = kunkun;
	string& zhongfen = kunkun;
	string& lanqiu = kunkun;
	printf("kunkun的地址  :%p\n", &kunkun);
	printf("jige的地址    :%p\n", &jige);
	printf("zhongfen的地址:%p\n", &zhongfen);
	printf("lanqiu的地址  :%p\n", &lanqiu);
}
int main()
{ikun();
	return 0;
}

在這里插入圖片描述

Ⅲ、引用一旦引用一個實體,再不能引用其他實體

這句話的意思是,我們給一個變量去了外號后,以后這個外號只屬于這個變量了,其他變量不能使用這個外號。

就像在我們ikun的眼中,雞哥就是坤坤的外號,其他人不允許使用雞哥這個外號!

我們下面看這段代碼,有個叫做麗麗的變量,也想和坤坤一樣取個外號叫做雞哥。
這當然不會被我們ikun允許,運行一下,看編譯器如何暴打麗麗!

void ikun()
{string kunkun = "我是坤坤";
	string lili = "我是麗麗";
	string& jige = kunkun;
	string& jige = lili;
	cout<< jige<< endl;
}
int main()
{ikun();
	return 0;
}

在這里插入圖片描述

4、常引用

如果在聲明引用時用const修飾,被聲明的引用就是常引用。
非const的引用只能綁定到普通的對象,而不能綁定到常對象;常引用可以綁定到常對象。一個常引用綁定的無論是普通的對象還是常對象,通過該引用訪問的對象只能當做常對象對待,該對象擁有常對象的性質。

錯誤方式:

void ikun()
{const int is_ikun = 1;
	int& good = is_ikun;
}

正確方式:

void ikun()
{const int is_ikun = 1;
	const int& good = is_ikun;
}

在這里插入圖片描述

三、使用場景 1、做參數

在定義或聲明函數時,我們可以將函數的形參指定為引用的形式,這樣在調用函數時就會將實參和形參綁定在一起,讓它們都指代同一份數據。如此一來,如果在函數體中修改了形參的數據,那么實參的數據也會被修改,從而擁有“在函數內部影響函數外部數據”的效果。

其實很好理解,我們給坤坤起的外號叫雞哥,現在我說,讓雞哥去打籃球。去的人自然就是坤坤,看似是讓雞哥去做,其實結果就是坤坤,對雞哥的改變就是對坤坤的改變。

在這里插入圖片描述

像下面這一,利用引用也可以完成“在函數內部影響函數外部數據”的效果。

void Swap(int& left, int& right)
{int temp = left;
   left = right;
   right = temp;
}
2、做返回值

如下,一個做返回值的小例子:

int &ADD (int r) 
{r += 10;
    return r;
}

值得注意的是,引用做返回值看似很簡單,但是里面有個小坑!!
那就是在將引用作為函數返回值時應該注意一個小問題,就是不能返回局部數據(例如局部變量、局部對象、局部數組等)的引用,因為當函數調用完成后局部數據就會被銷毀,有可能在下次使用時數據就不存在了。所以,如果函數返回時,出了函數作用域,如果返回對象還在(還沒還給系統),則可以使用
引用返回,如果已經還給系統了,則必須使用傳值返回。

此時,一位悲催的程序員再次以身試法,幫助ikun避坑:

int& Add(int a, int b)
{int c = a + b;
	return c;
}
int main()
{int& ret = Add(1, 2);
	Add(3, 4);
	cout<< "Add(1, 2) is :"<< ret<< endl;
	return 0;
}

在這里插入圖片描述

在這里插入圖片描述

四、引用和指針的區別

在語法概念上引用就是一個別名,沒有獨立空間,和其引用實體共用同一塊空間。
但是在底層實現上實際是有空間的,因為引用是按照指針方式來實現的。
分析下面的代碼:

//引用
int main()
{int a = 10;
int& ra = a;
cout<<"&a = "<<&a<

引用和指針的不同點:

  1. 引用概念上定義一個變量的別名,指針存儲一個變量地址。
  2. 引用在定義時必須初始化,指針沒有要求。
  3. 引用在初始化時引用一個實體后,就不能再引用其他實體,而指針可以在任何時候指向任何一個同類型實體。
  4. 沒有NULL引用,但有NULL指針。
  5. 在sizeof中含義不同:引用結果為引用類型的大小,但指針始終是地址空間所占字節個數(32
    位平臺下占4個字節)
  6. 引用自加即引用的實體增加1,指針自加即指針向后偏移一個類型的大小
  7. 有多級指針,但是沒有多級引用
  8. 訪問實體方式不同,指針需要顯式解引用,引用編譯器自己處理
  9. 引用比指針使用起來相對更安全
五、總結

在這里插入圖片描述
在這里插入圖片描述

📢📢📢📢📢📢
💗 你正在閱讀 【子夜的星】 的 C++筆記
👍 閱讀完畢,可以點點小手贊一下
🌻 發現錯誤,直接評論區中幫我指正吧

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

網站名稱:C++引用!他是坤坤也是雞哥-創新互聯
本文地址:http://newbst.com/article20/dggsco.html

成都網站建設公司_創新互聯,為您提供外貿網站建設Google網站策劃App開發網站排名網頁設計公司

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯