C++不允许定义引用的指针,因为引用本身只是与另一个对象绑定在一起的该对象的别名,而并非一个对象,所以标准规定不能定义指向引用的指针报错:
int a = 20;
int &*ptr = &a;// error
参考<< C++ Premier 第五版>>,想要看懂声明符ptr的具体类型是什么,最简单的办法就是从右往左读,离变量名最近的符号对其类型有最直接的影响(此处是*,表示其首先是个指针,指针的类型是一个int型引用)。
但是由于指针是个对象,所以定义一个指针的引用是可以的:
int a = 20;
int *&b = &a;// ok