【Java】【執行緒同步】取存錢
阿新 • • 發佈:2021-02-01
技術標籤:c++
引用
-
1 引用概念
a) 在C++中新增加了引用的概念
b) 引用可以看作一個已定義變數的別名
c) 引用的語法:Type& name = var;
d) 引用做函式引數那?(引用作為函式引數宣告時不進行初始化)
#include <iostream>
using namespace std;
int main(void) {
int a = 10;
int& b = a; //宣告引用的時候必須初始化,因為是別名
cout << "a的地址:" << &a << endl;
cout << "b的地址:" << &b << endl;
return 0;
}
-
引用做函式引數
普通引用在宣告時必須用其它的變數進行初始化,
引用作為函式引數宣告時不進行初始化
#include <iostream>
using namespace std;
//函式引數是引用的時候,可以不進行初始化
void swop(int& x, int &y) {
int temp = x;
x = y;
y = temp;
}
int main(void) {
int a = 10;
int b = 5;
cout << "a交換前:" << a << endl;
cout << "b交換前:" << b << endl;
swop(a, b);
cout << "a交換後:" << a << endl;
cout << "b交換後:" << b << endl;
return 0;
}
-
指標的意義
1)引用作為其它變數的別名而存在,因此在一些場合可以代替指標
2)引用相對於指標來說具有更好的可讀性和實用性
//引用形式 void swop(int& x, int &y) { int temp = x; x = y; y = temp; } //指標形式 void swop(int* x, int *y) { int temp = *x; *x = *y; *y = temp; }
-
引用的本質
1)引用在C++中的內部實現是一個常指標
Type& name <—> Type* const name
2)C++編譯器在編譯過程中使用常指標作為引用的內部實現,因此引用所佔用的空間大
小與指標相同。
3)從使用的角度,引用會讓人誤會其只是一個別名,沒有自己的儲存空間。這是C++
為了實用性而做出的細節隱藏
-
引用結論
1)當實參傳給形參引用的時候,只不過是c++編譯器幫我們程式設計師手工取了一個實參地
址,傳給了形參引用(常量指標)
2)當我們使用引用語法的時,我們不去關心編譯器引用是怎麼做的