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