指向指標的引用

2021-06-07 08:01:38 字數 322 閱讀 5302

原帖問題一:((a*)p)時,由於p是乙個b*在轉換時,會產生乙個臨時變數,而在c++中臨時變數是不允許作為非const引用的( a reference that is not to 'const' cannot be bound to a non-lvalue 就是這個意思),因此改為int test(a* const &),就沒問題了(我用的vs2008側過沒問題);

問題二: (a*&)p則就告訴編譯器把p直接轉為a*,沒有產生臨時變數,故沒有問題。

(你可以通過做實驗來檢測上面兩個問題是否產生臨時變數的差異)。

問題三:p就是a*,編譯器不做轉換了。就跟test(p)一樣。

指向指標的引用

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

指標的型別 指標所指向 指向指標的引用

從語法的角度看,你只要把指標宣告語句裡的指標名字去掉,剩下的部 分就是這個指標的型別。這是指標本身所具有的型別。讓我們看看例一中各 個指標的型別 int ptr 指標的型別是int char ptr 指標的型別是char int ptr 指標的型別是int int ptr 3 指標的型別是int 3...

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

引用僅是變數的別名,而不是實實在在地定義了乙個變數,因此引用本身並不占用記憶體,而是和目標變數共同指向目標變數的記憶體位址 表示式中的取位址符 不再是取變數的位址,而是用來表示該變數是引用型別的變數。定義乙個引用時,必須對其初始化。引用本身不是物件,因此不能定義指向引用的指標。但指標是物件,所以存在...