119 C++中的引用&
引用 1. 引用的概念
建立引用的作用是為變數另起一個名字,變數的引用通常被認為是變數的別名。
宣告一個引用的格式如下:
型別 & 引用名 = 已定義的變數名;
例如:
int i=5;
int &j = i;
這裡,宣告瞭一個整數型別的引用j ,用整型變數i對它進行初始化,這時j就可看做是變數i的引用,即是變數i的別名。也就是說,變數i和引用j佔用記憶體的同一位置。當i變化時,j也隨之變化,反之亦然。
舉例:
變數和引用的關係:
#include<iostream>
using namespace std;
int main()
{
int i;
int &j = i;
i = 30;
cout << "i=" << i << "j=" << j << "\n";
j = 80;
cout << "i=" << i << "j=" << j << "\n";
cout << "i的地址:" << &i << "\n";
cout << "j的地址:" << &j << "\n";
return 0;
}
執行結果:
i=30j=30
i=80j=80
i的地址:009CFD40 //地址會有所不同
j的地址:009CFD40
請按任意鍵繼續. . .
說明:
(1) 對變數宣告一個引用,編譯系統不給它單獨分配儲存單元,i和j都代表同一變數單元。
(2)在宣告一個引用時,必須立即對它進行初始化,即宣告它代表哪一個變數。不能宣告完成後再賦值。
(3) 為引用提供的初始值,可以是一個變數或另一個引用。
例如:
int i=5; //定義整型變數i
int &j1=i; //宣告j1是整型變數i的引用(別名)
int &j2=j1; //宣告j2是整型引用j1的引用(別名) 這樣定義後,變數i有兩個別名:j1和j2。
(4) 指標是通過地址間接訪問某個變數,需要書寫間接運算子“*”;
引用是通過別名直接訪問某個變數。
每次使用引用時,可以不用書寫間接運算子“*”,因而使用引用可以簡化程式。
(5) 引用在初始化後不能再被重新宣告為另一個變數的引用(別名)。
例如:
int i,k; //定義i和k是整型變數
int &j=i; //宣告j是整型變數i的引用(別名)
j=&k //錯誤,企圖重新宣告j是整型變數k的引用(別名)
(6) 儘管引用運算子“&”與地址操作符“&”使用相同的符號,但是它們是不一樣的。
引用運算子“&”僅在宣告引用時使用。
其他場合使用的“&”都是地址操作符
例如:
int j=5;
int& i=j; //宣告引用i,“&”為引用運算子
i=123; //使用引用i,不帶引用運算子
int *pi=&i; // 在此,“&”為地址操作符
cout<<π // 在此,“&”為地址操作符
更多內容歡迎關注:phpstory
相關文章
- C++中的&引用符號全解C++符號
- C++ 引用C++
- 【C++】引用C++
- C++中const與指標、引用的總結C++指標
- C++的引用技術C++
- c++中物件的引用作為函式的引數C++物件函式
- C++左值引用與右值引用C++
- C++ 右值引用和左值引用C++
- c++ 左值引用與右值引用C++
- C++右值引用C++
- 詳解C++引用C++
- c++筆記_引用C++筆記
- java的引用:用C++/C的引用和指標去理解JavaC++指標
- 【C++】兩個類的相互引用C++
- Java/Android中的強引用、軟引用、弱引用、虛引用JavaAndroid
- C++ 左值引用和右值引用之間的轉換C++
- Python與C++引用分析PythonC++
- 深入分析C++引用C++
- c++ 類的函式引用 指標C++函式指標
- c++中指標和引用的區別?C++指標
- C++精進之路4:引用的用法C++
- Java中的引用Java
- 開心檔之C++ 引用C++
- C++引用型別詳解C++型別
- C++ 引用型別簡介C++型別
- C++引用全部知識點C++
- 關於java的引用和c++的區別JavaC++
- Java 中的強引用、軟引用、弱引用和虛引用分別是什麼?Java
- Java中的弱引用Java
- java中的引用物件Java物件
- Java 中的方法引用Java
- Rust引用自定義c/c++庫RustC++
- C++中指標與引用詳解C++指標
- C++與Rust引用外部符號的比較C++Rust符號
- C++中“非常量引用的初始值必須是左值”的處理方法C++
- Java常見知識點彙總(⑲)——Java中的強引用、弱引用、軟引用、虛引用Java
- C++對C語言的擴充套件(1)--引用C++C語言套件
- C++ :引用計數(reference count) 實現C++