2.3.3理解複合類型的聲明
指向指針的指針
指針是內存中的對象,像其他對象一樣也有自己的地址,因此允許把指針的地址再存放到另一個指針當中
通過的個數可以區別指針的級別,表示指向指針的指針,表示指向指針的指針的指針
int ival=1024;
int *pi=&ival;
int **ppi=π
見p58
指向指針的引用
引用本身不是一個對象,因此不能定義指向引用的指針。但指針是對象,所以存在對指針的引用
int i=42;
int *p;//p是一個int型指針
int *&r=p;
指向指針的引用
引用本身不是一個對象,因此不能定義指向引用的指針。但指針是對象,所以存在對指針的引用
int i=42;
int *p;
int *&r=p;//r是一個對指針的引用
r=&i;//r引用了一個指針,因此給r賦值&i就是令p指向i
*r=0//解引用r得到i,也就是p指向的對象,將i的值改爲0
從右往左閱讀r的定義。離變量名最近的符號(&r)對變量的類型最直接的影響,因此r是一個引用。聲明符的其餘部分用以確定r引用。聲明符的其餘部分用以確定r引用的類型是什麼,此例子中符號*說明r引用的是一個指針。
2.3.3理解複合類型的聲明
int i=1024,*p=&i,&r=i;
//i是一個int型的數,p是一個int型指針,r是一個int型引用