浅析C++利器之——引用
由于項(xiàng)目的需要學(xué)習(xí)了C++編程,為了更好的鞏固學(xué)習(xí)所獲,決定將學(xué)習(xí)中的點(diǎn)點(diǎn)滴滴記錄下來以便和大家分享;希望能夠給那些需要幫助的人一些微薄之力。。。
沒有接觸過C++的同學(xué)估計(jì)對(duì)引用這個(gè)詞語(yǔ)比較陌生,下面我們就從引用的概念開始侃吧。
引用就是某一變量(目標(biāo))的一個(gè)別名(綽號(hào)),對(duì)引用的操作與對(duì)變量(目標(biāo))直接操作完全一樣。下面是一個(gè)簡(jiǎn)單的例子:
int a;
int &b = a;
這里,b相當(dāng)于a的別名(綽號(hào)),對(duì)b的任何操作就是對(duì)a的操作。因此,b既不是a的拷貝,也不是指向a的指針,其實(shí)b就是a自己;
引用的規(guī)則:
1.引用被創(chuàng)建時(shí)必須被初始化(指針可以在任何時(shí)候被初始化);
2.不能夠有NULL引用,引用必須與合法的存儲(chǔ)單元關(guān)聯(lián)(指針可以指向NULL);
3.引用一旦被初始化,就不能夠再改變引用的關(guān)系(指針可以隨時(shí)指向不同的對(duì)象);
4.不能夠建立數(shù)組的引用;(由于數(shù)組是由若干個(gè)元素組成的一個(gè)集合,所以無法創(chuàng)建數(shù)組的引用);
引用的用途:
引用的兩大主要用途:
????????1.作為函數(shù)的參數(shù);
??????? 2.從函數(shù)中返回左值;
在傳統(tǒng)的C語(yǔ)言中,函數(shù)在調(diào)用時(shí)參數(shù)是通過值來傳遞的,也就是說函數(shù)的參數(shù)不具備返回值的能力,如果要使函數(shù)的參數(shù)具有返回值的能力,通常使用指針來實(shí)現(xiàn)的。
如果在函數(shù)參數(shù)傳遞時(shí),通過引用這種方式的話,函數(shù)參數(shù)就具有返回值的能力了:
void swap(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
?
**當(dāng)大型對(duì)象作為參數(shù)傳遞給函數(shù)時(shí),使用引用參數(shù)可使參數(shù)傳遞效率提高,因?yàn)橐貌⒉划a(chǎn)生參數(shù)的副本,也就是參數(shù)傳遞時(shí),對(duì)象并不復(fù)制(可以考慮下C語(yǔ)言中函數(shù)參數(shù)傳值的方式,可以很好的理解為什么void swap(int a, int b)無效);
常引用:
?????????? 申明方式:const 類型標(biāo)示符 &引用名=目標(biāo)名
**用這種方式申明的引用,不能夠通過引用對(duì)目標(biāo)變量的值進(jìn)行修改,從而使引用的目標(biāo)成為const,達(dá)到了引用的安全性;
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/chegnshi-coding/archive/2011/11/18/4457750.html
總結(jié)
以上是生活随笔為你收集整理的浅析C++利器之——引用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android百度地图例子,使用百度地图
- 下一篇: 论文英文参考文献[10]的时候后面多空格