基礎知識 引用

2021-10-24 17:13:19 字數 1274 閱讀 8301

引用說明:

引用的時候需要在定義的時候初始化

&在此不是求位址運算,而是起標識作用。

型別識別符號是指目標變數的型別。

宣告引用時,必須同時對其進行初始化。

宣告乙個引用,不是新定義了乙個變數,它只表示該引用名是目標變數名的乙個別名,它本身不是一種資料型別,因此引用本身不佔儲存單元。

1、引用作為引數

char c;

char

*p =

&c;//指標

char

& r = c;

//引用

r是c的別名,用r和用f是一樣的

在引數表裡,或者作為成員變數可以不初始化,但是如果是本地變數或者是全域性變數,必須初始化

2、常引用

const

int& z = x;

代表z是x的別名,但是不能通過z改變x的值

3、引用作為返回值

以引用返回函式值,定義函式時需要在函式名前加&

用引用返回乙個函式值的最大好處是,在記憶體中不產生被返回值的副本。

int&h

()h(

)=16;

如果要從函式裡返回乙個引用,寫在return那裡的是乙個變數,且本地變數不行(生命週期太短)。

4、引用和多型

classa;

a::a

(int

& a) :m_y

(a)

如果要在乙個類裡面定義乙個引用的變數,則必須用建構函式初始化,不能在花括號裡

void

func

(const

int& y,

int& z)

const引用傳進函式裡,可以減少資料的傳遞,且不改變裡面的值。

void

func

(int&)

fun(i*3)

;//error

函式裡需要傳進去乙個能做左值的變數,i*3會被自動預設成const,但是如果函式裡面是const就可以編譯通過

#include

using

namespace std;

classa;

~a()

;};a&

f()int

main()

返回的a物件時本地變數,會被釋放。所以下面的**無意義

引用的基礎知識

傳智掃地僧課程學習筆記。引用,已定義變數的別名,int a 10 int b a b 20 此時操作b,就是在操作a,來讓我們看看內幕,int a 10 int b a int const b a b 20 b 20 旁邊的注釋,就是c 編譯器幫我們做的工作,普通引用必須顯示初始化,比如int c ...

C 中引用的基礎知識

include using namespace std 1 引用的基本概念 int main01 2 引用是c 的語法範疇,是屬於c 編譯器對c的擴充套件 c編譯器不能通過引用這個概念 3 引用做函式引數 普通引用在宣告的時候必須用其它的變數進行初始化 引用作為函式引數宣告時不進行初始化 int m...

C 入門基礎知識 類和引用

一.類 類的6個預設函式 物件 物件導向等概念 1.cpp的資料型別 除去c中的 基本資料型別 bool型 邏輯型 非基本型 類 class void型 無型別 命名空間 為了解決全域性變數命名衝突的問題 例 include using namespace std 標準輸入輸出流,命名空間為std ...