引用很接近const指標
引用其實就是變數的別名 他不能脫離變數而存在
宣告引用時必須要初始化引用 不能宣告空引用
引用變數存放的是被引用物件的位址
引用變數在功能上等於乙個常量指標,一旦指向某乙個位址單元,就不能指向別處了
指標允許定址,即&p返回指標p的位址,而引用不允許定址,&r返回被引用物件的位址,被引用物件直接用r表示
凡是使用了引用變數的**都可以轉化成指標的形式,只是**會更加繁瑣。(由於引用的限制,一些常量指標能做到的事,引用卻做不到——陣列元素允許是指標常量,卻不允許是引用
引用使用時無需解引用(*)但指標需要
sizeof()引用變數得到被引用物件大小,而sizeof()指標只能得到指標變數本身的大小
引用不能為空 指標可以為空
(++)對引用和指標含義不同 對引用是對被引用物件的值++ 對指標是本身的位址++
指標是物件,佔據記憶體;引用不是,不一定佔據記憶體。(引用是否佔記憶體標準中並沒有規定,可以視它為指標常量,並且在編譯器優化後它不佔記憶體)
對於class t
public: int a;
在函式裡面 void fun(class t& a)傳了乙個物件a 可以使用.(成員運算子)來訪問物件裡的成員,如a.a; void fun(class t* a)傳物件的指標,使用->(間接運算子)來訪問物件裡的成員a->a;
C 指標和引用
在深入介紹之前我們首先來看一下指標和引用的定義 指標和引用的區別,然後分別針對指標和引用展開討論,深入細節為何有這些差異。指標和引用的定義,下面用通俗易懂的話來概述一下 而宣告指標是可以不指向任何物件,也正是因為這個原因,使用指標之前必須做判空操作,而引用就不必。其次,引用不可以改變指向,對乙個物件...
C 引用和指標
引用和指標看上去差不多,看上去差不多,其實男寶寶和女寶寶是不一樣的 用起來還是有一定差距。本人菜鳥僅將遇到的問題記錄備案,以便日後翻查 ptrfunc.h ifndef ptrfunc h define ptrfunc h typedef int func int,int struct aa end...
C 指標和引用
有了變數名,為什麼還需要乙個別名呢?c 之所以增加引用型別,主要是把它作為函式引數,以擴充函式傳遞資料的功能 到目前為止我們介紹過函式引數傳遞的兩種情況 1 將變數名作為實參和形參 這時傳給形參的是變數的值,傳遞是單向的 如果在執行函式期間形參的值發生變化,並不傳回給實參 因為在呼叫函式時,形參和實...