【C++】引用
引用的基本語法
語法:資料型別 &別名 = 變數名
作用:給變數起別名
#include<iostream>
using namespace std;
int main() {
//int& a;//定義時就必須初始化,所有此時會報錯
int a = 10;
cout << a << endl;
int& x = a;//給變數a起別名
x = 100;//改變引用指向內容的值
cout << a << endl;
cout << x << endl;
return 0;
}
引用注意事項
#include<iostream>
using namespace std;
int& func() {
int a = 10;
return a;
}
int main() {
int& x = func();
cout << x << endl;//輸出:10
cout << x << endl;//輸出:2047785360 此時的變數內容已經被系統回收
return 0;
}
- 不要將區域性變數用引用給函式返回賦值給變數,因為此時返回出來的變數的值在使用一次後就會被系統回收
引用做函式引數
#include<iostream>
using namespace std;
//值傳遞
void swap01(int a, int b) {
int temp;
temp = a;
a = b;
b = temp;
}
//地址傳遞
void swap02(int* a, int* b) {
int temp;
temp = *a;
*a = *b;
*b = temp;
}
//引用傳遞
void swap03(int& a, int& b) {
int temp;
temp = a;
a = b;
b = temp;
}
int main() {
int a = 10;
int b = 20;
swap01(a, b);
cout << "a=" << a << " b=" <<b<< endl;
swap02(&a, &b);
cout << "a=" << a << " b=" <<b<< endl;
swap03(a, b);
cout << "a=" << a << " b=" <<b<< endl;
return 0;
}
引用做函式的返回值
#include<iostream>
using namespace std;
int& func() {
int a = 10;
return a;
}
int main() {
int& ref = func();
cout << ref << endl;
//函式左值
func() = 1000;
cout << ref << endl;
return 0;
}
引用的本質
#include<iostream>
using namespace std;
void func(int& x) {
x = 100;
}
int main() {
int a = 10;
int& ref = a;//自動轉換為 int* const ref = &a; 指標常量的指向不可變,也就解釋了為什麼引用的指向也不可變
ref = 20;//自動轉換為 *ref = 20;
cout << "a=" << a << " ref=" << ref << endl;
func(a);
cout << "a=" << a << " ref=" << ref << endl;
return 0;
}
相關文章
- C++ 引用C++
- C++左值引用與右值引用C++
- C++ 右值引用和左值引用C++
- c++ 左值引用與右值引用C++
- C++右值引用C++
- 詳解C++引用C++
- c++筆記_引用C++筆記
- Python與C++引用分析PythonC++
- 深入分析C++引用C++
- 119 C++中的引用&C++
- C++的引用技術C++
- 開心檔之C++ 引用C++
- C++引用型別詳解C++型別
- C++ 引用型別簡介C++型別
- C++引用全部知識點C++
- Rust引用自定義c/c++庫RustC++
- C++中指標與引用詳解C++指標
- 【C++】兩個類的相互引用C++
- C++ 左值引用和右值引用之間的轉換C++
- java的引用:用C++/C的引用和指標去理解JavaC++指標
- C++中的&引用符號全解C++符號
- C++ :引用計數(reference count) 實現C++
- c++ 類的函式引用 指標C++函式指標
- c++中指標和引用的區別?C++指標
- C++精進之路4:引用的用法C++
- c++指標傳遞與引用傳遞C++指標
- C++中const與指標、引用的總結C++指標
- C++與Rust引用外部符號的比較C++Rust符號
- 關於java的引用和c++的區別JavaC++
- C++ 學習筆記(3):引用和指標C++筆記指標
- c++之引用及記憶體分割槽模型C++記憶體模型
- C++智慧指標學習——小談引用計數C++指標
- C++ 只能指標迴圈引用簡單測試C++指標
- C++對C語言的擴充套件(1)--引用C++C語言套件
- C++名稱空間、標準輸入輸出、引用C++
- C/C++引用和指標的聯絡和區別C++指標
- c++中物件的引用作為函式的引數C++物件函式
- 強引用 軟引用 弱引用 虛引用