引用本身不是一个对象,因此不能定义指向引用的指针。但指针是对象,所以存在对指针的引用:
int i = 100;
int* p; //p是一个int型的指针
int*& r = p; //r是一个对指针p的引用
r = &i; //r引用了一个指针,因此给r赋值&i就是令p指向i
*r = 1; //解引用r得到i,也就是p指向的对象,将i的值改为0
std::cout << "p:" << *p << std::endl << "i:" << i << std::endl;
结果为:
p:1
i:1