傳智掃地僧課程學習筆記。
引用,已定義變數的別名,
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; 這樣就是錯的,
作為函式形參的時候,不用,
下面是經典的兩數交換函式的3個版本,
版本1:
void swap( int a, int b)
int c = a;
a = b;
b = c;
swap( x,y);//這樣其實沒有達到我們想要的交換目的,
版本2:
void swap( int *a, int *b)
int c = *a;
*a = *b;
*b = c;
swap( &x, &y);//這樣寫的話,能交換
版本3:
void swap( int &a, int &b)
int c = a;
a = b;
b = c;
swap( x,y);
//這樣寫的話,也能交換,這種情況下,引用初始化不用賦值,呼叫函式的時候,直接扔變數即可,不用取位址,其實是編譯器幫我們取位址了,
基礎知識 引用
引用說明 引用的時候需要在定義的時候初始化 在此不是求位址運算,而是起標識作用。型別識別符號是指目標變數的型別。宣告引用時,必須同時對其進行初始化。宣告乙個引用,不是新定義了乙個變數,它只表示該引用名是目標變數名的乙個別名,它本身不是一種資料型別,因此引用本身不佔儲存單元。1 引用作為引數 char...
C 中引用的基礎知識
include using namespace std 1 引用的基本概念 int main01 2 引用是c 的語法範疇,是屬於c 編譯器對c的擴充套件 c編譯器不能通過引用這個概念 3 引用做函式引數 普通引用在宣告的時候必須用其它的變數進行初始化 引用作為函式引數宣告時不進行初始化 int m...
基礎知識 指標和引用的區別
1.指標有自己的一塊空間,而引用只是乙個別名 2.使用sizeof看乙個指標的大小是4,而引用則是被引用物件的大小 3.指標可以被初始化為null,而引用必須被初始化且必須是乙個已有物件 的引用 4.作為引數傳遞時,指標需要被解引用才可以對物件進行操作,而直接對引 用的修改都會改變引用所指向的物件 ...