引用以及引用的實質
c++與c語言函式中引數的傳遞方式是傳值。在棧中重新為引數分配記憶體,而把實參的數值傳遞到新分配的記憶體中。但重新分配空間會引起執行效率的大大下降,因此c++推出一種新的資料型別–引用。引用簡單來說就是別名,例如有一種蔬菜有的人叫它“蕃茄”有的人叫他“番茄”但從本質上來說“番茄和蕃茄”指的是同一樣東西。
引用不是定義一個新的變數,而是給一個已經定義的變數重新起一個別名,主要用於函式之間的資料傳遞。定義格式為:型別&引用變數名=已經定義過的變數名,例如:int a; int &b=a; 如此b就是a的別名。
引用主要有這幾個作用:
1.引用作為函式的形參
2.引用作為函式的返回值
3.返回值為引用的函式作為左值
注意
(1)對於陣列只能引用陣列元素,不能引用陣列因為陣列名是陣列的地址。
(2)不能定義引用的引用(引用也是地址),所以當函式的引數為引用時,引用不能作為實參。
(3)沒有空引用例如 int &x;
()const引用:引用在內部存放的是被引用物件的地址,不可定址的值是不能引用的,當引用作為形參時,實參也不能使用不可定址的值,更不能進行型別的轉換。但是const引用不同,它是隻讀的,編譯器實現const時會產生一個臨時物件,但使用者不能訪問它。所以const能實現不可定址的值。因此const引用作為形參時,實參也能使用不可定址的值。
引用的實質:應用的實質從彙編的角度來說就是指標
int main()
{
int a=10;
int &b = a;
int *c = &a;
return 0;
}
相關文章
- Java的強引用、軟引用、弱引用、虛引用Java
- java的強引用、軟引用、弱引用、幻象引用,引用佇列總結Java佇列
- Java/Android中的強引用、軟引用、弱引用、虛引用JavaAndroid
- 理解Java的強引用、軟引用、弱引用和虛引用Java
- 強引用 軟引用 弱引用 虛引用
- 強引用,軟引用,弱引用,虛引用
- 強引用、軟引用、弱引用、虛引用
- Java引用型別解析:掌握強引用、軟引用、弱引用和幻象引用的妙用Java型別
- 強引用、軟引用、弱引用與虛引用
- Java四種引用包括強引用,軟引用,弱引用,虛引用。Java
- 【JVM】如何理解強引用、軟引用、弱引用、虛引用?JVM
- Java四大引用詳解:強引用、軟引用、弱引用、虛引用Java
- Java 中的強引用、軟引用、弱引用和虛引用分別是什麼?Java
- 強引用、軟引用、弱引用、幻象引用有什麼區別?
- 強引用、軟引用、弱引用、幻象引用再不理解就晚了
- 關於強引用、軟引用、弱引用、幻象引用,你該如何回答?
- Python中OS對目錄的操作以及引用Python
- Java常見知識點彙總(⑲)——Java中的強引用、弱引用、軟引用、虛引用Java
- 前端優質網路內容(引用)前端
- 老徐和阿珍的故事:強引用、軟引用、弱引用、虛引用,傻傻分不清楚
- Java 不可變集合 Stream流以及方法引用Java
- Flutter 自定義列表以及本地圖片引用Flutter地圖
- 引用
- Swift 4 弱引用實現Swift
- JVM 符號引用和直接引用JVM符號
- C#程式設計引用型別和值型別 以及引用傳遞和值傳遞C#程式設計型別
- Java中的引用Java
- PHP引用的&理解PHP
- JVM - 引用JVM
- 方法引用
- HTML 引用HTML
- Markdown 引用
- 03_方法引用與構造器引用
- C++左值引用與右值引用C++
- C++ 右值引用和左值引用C++
- c++ 左值引用與右值引用C++
- Java引用計數與實現Java
- SharePoint佈局頁引用(實戰)