引用說明:
引用的時候需要在定義的時候初始化
&在此不是求位址運算,而是起標識作用。
型別識別符號是指目標變數的型別。
宣告引用時,必須同時對其進行初始化。
宣告乙個引用,不是新定義了乙個變數,它只表示該引用名是目標變數名的乙個別名,它本身不是一種資料型別,因此引用本身不佔儲存單元。
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 ...