一個是用來傳值的 一個是用來獲取首地址的
&(引用)==>出現在變量聲明語句中位於變量左邊時,表示聲明的是引用.
例如: int &rf; // 聲明一個int型的引用rf.
&(取地址運算符)==>在給變量賦初值時出現在等號右邊或在執行語句中作為一元運算符出現時
表示取對象的地址.
在C++中,既有引用又有取地址,好多人對引用和取地址不是很清楚,因此也無法區分。其實他們的區別可以用一句話概括:和類型在一起的是引用,和變量在一起的是取址。下面我們通過實例具體了解一下
1)引用在賦值=的左邊,而取地址在賦值的右邊,比如
-
int a=3;
-
int &b=a; //引用
-
int *p=&a; //取地址
2)和類型在一起的是引用,和變量在一起的是取址。 舉例同樣如上,還有下例:
-
int function(int &i)
-
-
{
-
-
} //引用
3)對於vector,上面2條同樣適合
-
vector <int> vec1(10,1); //initialize vec1: 10 elements, every element's value is 1
-
vector <int> &vec2 = vec1; // vec2 is reference to vec1
-
vector <int> *vec3 = &vec2; //vec3 is addresss of vec1 and vec2
微信公眾號【黃小斜】大廠程序員,互聯網行業新知,終身學習踐行者。關注后回復「Java」、「Python」、「C++」、「大數據」、「機器學習」、「算法」、「AI」、「Android」、「前端」、「iOS」、「考研」、「BAT」、「校招」、「筆試」、「面試」、「面經」、「計算機基礎」、「LeetCode」 等關鍵字可以獲取對應的免費學習資料。