您好,登錄后才能下訂單哦!
這篇文章主要講解了“C++中的引用類型是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C++中的引用類型是什么”吧!
引用,顧名思義是某一個變量或對象的別名,對引用的操作與對其所綁定的變量或對象的操作完全等價。
**注:**作為別名來說,一個變量不能只有別名,而沒有自己的真實姓名。
如下面的一段代碼:
#includeusing namespace std; { int a = 3; int &b = a; //b就是a的引用,即b是a的一個別別名。 //引用必須初始化,否則編譯會報錯 b = 10; coutreturn 0; }
如下面的一段代碼:
#includeusing namespace std; //定義一個名叫Coor的結構體,這是一個坐標。 typedef struct { int x; int y; }Coor; int main(void) { Coor c1; //定義一個結構體變量,叫c1. Coor &c = c1; //給c1起了一個別名叫c. c.x = 10; //通過引用給結構體變量的數據成員賦值 c.y = 20; coutreturn 0; }
指針類型的引用是引用當中最為復雜,最難理解的一部分,同時在寫法形式上也有著與眾不同的地方。
定義:
類型 *&指針引用名 = 指針;
看個例子:
#includeusing namespace std; int main(void) { int a = 10; //定義一個整型的a變量,a的值為10。 int *p = &a; //定義一個指向a變量的指針 int *&q = p; //定義一個指針的引用,即q為p的別名。 定義方法:類型 *&指針引用名 = 指針; *q = 20; //把20賦給*q,相當于是把20賦值給*p,也就相當于把20賦值給a. coutreturn 0; }
在沒有學習引用之前我們學習 C 語言時,學過這樣的經典程序:
//將兩個值進行交換 void fun( int *a,int *b) //形參為兩個整型的指針變量 { int temp = 0; //定義一個臨時變量。良好的習慣是定義一個變量并初始化它; c = *a; //將*a賦值給c; *a = *b; //將*b賦值給*a; *b = c; //再將c賦值給*b;這樣就完成了a、b數值的交換 } int x = 10,y = 20; fun(&x,&y); //在主函數中調用時,傳過去的實參需要寫成 取地址a,取地址b,比較麻煩,也不易理解。
現在我們學習了引用,在完成同等功能時需要寫成什么樣子?
void fun (int &a, int &b) //形參為兩個整型的引用 { int temp = 0; temp = a; a = b; b = temp; } int x = 10,y = 20; fun(x,y); //在主函數中調用時,實參傳過去后a是x的別名,b是y的別名。
感謝各位的閱讀,以上就是“C++中的引用類型是什么”的內容了,經過本文的學習后,相信大家對C++中的引用類型是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。