聽起來很複雜,其實按層次順序理解就能容易,指向指標的引用:1、這是乙個引用,2、這個引用引用的是乙個指標。
牢記引用的實質:引用只是被引用物件/變數的別名。
測試環境:qt, 示例**:
結果:int a = 1;
int b = 2;
int * temp = &a;
int *&p = temp;
p = &b;
*p = 5;
qdebug() << a << " a ";
qdebug() << b << " b ";
qdebug() << *temp << " *temp ";
qdebug() << *p << " *p ";
理解一下其實也很簡單:
1、temp是乙個整型指標,指向a;
2、p是乙個指向整型指標的引用,其實也就是p是temp的別名;
3,p指向了b,其實也就是temp指向了b;
4、p指向的整型的值,其實也是temp指向的整型的值,也就是b改為了5。
指向指標的引用有什麼用?由於對引用的操作其實也就是對被引用物件的操作,所以當傳入乙個指標時,可以用來實現修改實參時同時修改被傳入的形參(被傳入的指標)的效果。
指向指標的引用
原帖問題一 a p 時,由於p是乙個b 在轉換時,會產生乙個臨時變數,而在c 中臨時變數是不允許作為非const引用的 a reference that is not to const cannot be bound to a non lvalue 就是這個意思 因此改為int test a con...
指標的型別 指標所指向 指向指標的引用
從語法的角度看,你只要把指標宣告語句裡的指標名字去掉,剩下的部 分就是這個指標的型別。這是指標本身所具有的型別。讓我們看看例一中各 個指標的型別 int ptr 指標的型別是int char ptr 指標的型別是char int ptr 指標的型別是int int ptr 3 指標的型別是int 3...
C 指標的引用和指向引用的指標
引用僅是變數的別名,而不是實實在在地定義了乙個變數,因此引用本身並不占用記憶體,而是和目標變數共同指向目標變數的記憶體位址 表示式中的取位址符 不再是取變數的位址,而是用來表示該變數是引用型別的變數。定義乙個引用時,必須對其初始化。引用本身不是物件,因此不能定義指向引用的指標。但指標是物件,所以存在...