1. 程式人生 > 其它 >【Java】【執行緒同步】取存錢

【Java】【執行緒同步】取存錢

技術標籤: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)當我們使用引用語法的時,我們不去關心編譯器引用是怎麼做的