引用是c語言中沒有,而在c++中又很重要的乙個概念,通過應用,可以得到變數本身,相對於得到變數的值而言,有更大的操作空間。
變數的本質
變數名實質上是一段連續儲存空間的別名,是乙個標號
程式中通過變數來申請並命名記憶體空間
通過變數的名字可以使用儲存空間
引用是c++的概念,屬於c++編譯器對c的擴充套件
int main()
引用的概念int main()
int swap(int *a, int *b)
普通引用擁有自己的記憶體空間,有位址,是乙個常量,相當於乙個常指標,char *const p
struct teacer ;
int main()
引用的本質
type& name <=> type* const name
void func(int &a)
void func(int *const a)
當函式返回值為引用時,若返回棧變數,不能成為其它引用的初始值,不能作為左值使用。若返回靜態變數或全域性變數,可以成為其他引用的初始值,即可作為右值使用,也可作為左值使用。c++鏈式程式設計中,經常用到引用
當實參傳給形參引用的時候,只不過是c++編譯器幫我們程式設計師手工取了乙個實參位址,傳給了形參引用(常量指標)
const引用(使用變數初始化const引用)
在c++中可以宣告const引用
const type& name = var;
const引用讓變數擁有唯讀屬性
int a = 10;
const int &b = a;
此時便不可以使用b來修改a的值了,只能使用a自身和指標。
const引用(使用字面量常量初始化const引用)
int main()
當使用常量(字面量)對const引用進行初始化時,c++編譯器會為常量值分配空間,並將引用名作為這段空間的別名
使用常量對const引用初始化後將生成乙個唯讀變數
const引用總結
const&
相當於const int * const e
普通引用相當於int *const e
int& func1()
int& func2()
int main()
c 學習筆記 引用
引用 引入物件的乙個同義詞,不會產生新的物件!例如 point p1 m,n point p2 p1 p2為p1的同義詞,改變p2的同時也會改變p1,但是編譯器並沒有給p2單獨分配記憶體,他和p1是共用一塊記憶體的!引用和const一樣,必須馬上初始化 例如如下類 class point publi...
C 學習筆記 引用
引用,reference 在本質上就是指標,從建立開始,就與目標繫結 指標定義 int a 123 int p a 稱作 p指向了變數a 引用定義 int a 123 int r a 引用的定義 稱作 r是變數a的引用 r引用了變數a 和指標是乙個意思 指標的使用 int a 123 int p a...
C 引用學習筆記
作用 給變數起別名 語法 資料型別 別名 原名 如 int a 10 int b a 其中a與b是等效的,兩者指向的位址空間是一樣的 主要有兩點 1.引用前必須初始化 2.引用在初始化後,不可以改變 原因在引用的實質中會講到 作用 函式傳參時 可以利用引用的技術讓形參修飾實參 優點 可以簡化指標實參...