C++中指针前还加&是什么意思

区分使用位置,有两种可能:
1 在定义时使用,如
int *a;
int * &p = a;
这种是C++中的引用,p本身不占用内存空间,只是a的一个别名,对p的访问完全等同于对a的访问。

2 在非定义时,指针前加&表示取指针的地址。

int * a;
int **p = &a;
这里a本身是指针变量,在C语言中每个变量都有自己的内存空间,对变量做&操作,可以取得这个空间的首地址。于是&a就是取a的地址赋值给p,这样,*p就等同于a。

posted on 2019-11-14 15:21  damoguying  阅读(2215)  评论(0编辑  收藏  举报