C++中int *a; int &a; int & *a; int * &a

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

吾生也有涯,而知也无涯
原文地址:https://www.cnblogs.com/daimasanjiaomao/p/14162606.html