当出现指针、引用一起的时候,我们不容易区分到底是指针还是引用。
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限定符还有一些,这里没有写

本文深入探讨了C++中指针与引用的概念,并通过实例展示了如何从右到左阅读r的定义来区分它们。解释了声明符的不同部分如何影响变量的类型。
870

被折叠的 条评论
为什么被折叠?



