C 指標的引用和指向引用的指標

2021-09-26 04:28:34 字數 920 閱讀 1763

引用僅是變數的別名,而不是實實在在地定義了乙個變數,因此引用本身並不占用記憶體,而是和目標變數共同指向目標變數的記憶體位址

.表示式中的取位址符&不再是取變數的位址,而是用來表示該變數是引用型別的變數。

定義乙個引用時,必須對其初始化。

引用本身不是物件,因此不能定義指向引用的指標。但指標是物件,所以存在指標的引用

要理解r的型別到底是什麼,就簡單的方法是從右向左閱讀r的定義

離變數名最近的符號對變數的型別有最直接的影響(此題中是&r的符號是&),因此r是乙個引用

宣告符的其餘部分以確定r引用的型別是什麼,此題中的符號*說明r引用的是乙個指標。

最後,宣告的基本資料型別部分指出r引用的是乙個int指標,即r是指向int型指標的引用

我們可以從右往左讀,*表明p是乙個指標,餘下的&說明了p指向型別的型別,即p是指向的是int型引用的指標。

注:因為引用不是物件,故無引用的陣列,無指向引用的指標,無引用的引用。

進一步理解,參考以下介紹

指向指標的引用

原帖問題一 a p 時,由於p是乙個b 在轉換時,會產生乙個臨時變數,而在c 中臨時變數是不允許作為非const引用的 a reference that is not to const cannot be bound to a non lvalue 就是這個意思 因此改為int test a con...

指向指標的引用

聽起來很複雜,其實按層次順序理解就能容易,指向指標的引用 1 這是乙個引用,2 這個引用引用的是乙個指標。牢記引用的實質 引用只是被引用物件 變數的別名。測試環境 qt,示例 int a 1 int b 2 int temp a int p temp p b p 5 qdebug a a qdebu...

指標的引用與指向指標的指標

一般來說,為函式傳入乙個引數,如果希望函式執行完成後對引數的改動依然保留,那麼有兩種方式 傳入乙個引用 傳入乙個指標 傳入引用的方式很好理解,就是相當於將變數本身傳入,針對變數所進行的一切修改都是直接對變數本身的修改。傳入指標則不然,傳入指標後進行的修改,實際上是對指標指向的位址的內容進行修改,而不...