区分使用位置,有两种可能:
1 在定义时使用,如
int *a;
int * &p = a;
这种是C++中的引用,p本身不占用内存空间,只是a的一个别名,对p的访问完全等同于对a的访问。
2 在非定义时,指针前加&表示取指针的地址。
如
int * a;
int **p = &a;
这里a本身是指针变量,在C语言中每个变量都有自己的内存空间,对变量做&操作,可以取得这个空间的首地址。于是&a就是取a的地址赋值给p,这样,*p就等同于a。
原文:https://www.cnblogs.com/puhongtao/p/11857648.html