int a[10]; int& *arry=a; //出错! ----------------------- int a[10]; int *p=a; int& *arry=p; //编译通过! 第二段代码只是多了一个中间变量p,其实p和a不都是指向同一个单元的指针吗?为什么没有这个中间变量编译就无法通过?
对,钱能《c++程序设计教程》189页有这样两段话:
1)由于指针也是变量,所以可以有指针变量的引用
int *a;
int * &p=a;
int b=8;
p=&b;
2)引用本身不是一种数据类型,所以没有引用的引用,也没有引用的指针
int a;
int& ra=a;
int& *p=&ra; //error企图定义一个引用的指针