當出現指針、引用一起的時候,我們不容易區分到底是指針還是引用。
int main()
{
int i=42;
int *p;
int *&r=p;//r是一個對指針p的引用
r=&i;//r引用了一個指針,因此給r賦值&i 就是令p指向i
*r=0;//解引用r得到i,也就是p指向的對象,將i值改爲0
}
最簡單的方法就是從右到左閱讀r的定義。離變量最近的符號(此例中是&r的符號&)對變量的類型有最直接的影響,因此r是一個引用。
聲明符的其餘部分用以確定r引用的類型是什麼,此例中的符號* 說明r引用的是一個指針,最後聲明的基本數據類型部分指出r引用的是一個int指針。
注:關於const限定符還有一些,這裏沒有寫