C++中int *a; int &a; int & *a; int * &a
C++中指针和应用的不同混用方式往往具有截然不同的语义,所以这里详细地对几种指针和引用的混用方式进行区分,指针和引用的混用常见的如下面几种:
int i;
int *a = &i; //这里a是一个指针,它指向变量i
int &b = i; //这里b是一个引用,它是变量i的引用(别名)
int * &c = a; //这里c是一个引用,它是指针a的引用
int & *d; //这里d是一个指针,它指向引用,但引用不是实体,所以这是错误的
区分技巧:在分析上面代码时,可以从变量标识符开始从右往左看,最靠近标识符的是变量的本质类型,而再往左即为对变量类型的进一步修饰。
举例 :
int * & a;
标识符a的左边紧邻的是&,证明a是一个引用变量,而再往左是*,可见a是一个指针的引用,再往左是int,可见a是一个指向int类型的指针的引用。
转载自:https://blog.csdn.net/qq_18108083/article/details/84679104