大众信息网

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

答案:4  mip版
解决时间 2021-02-22 15:47
  • 提问者网友:空气里的回忆
  • 2021-02-22 08:28
Stack*& pHead 这个是什么意思 还有
CPlex* CPlex::Create(CPlex*& pHead, UINT nMax, UINT cbElement)
{ CPlex* p = (CPlex*)new BYTE[sizeof(CPlex) + nMax*cbElement];
// 将新增加的内存块添加到链中,并将其地址做为首地址
p->pNext = pHead;
pHead = p; // 以相反方向添加数据项的方式大大减化了程序设计 ,这句话又是什么意思 反方向添加数据项怎么回事
return p;
}
最佳答案
  • 二级知识专家网友:没仙气的仙女
  • 2021-02-22 09:40
区分使用位置,有两种可能:
1 在定义时使用,如
int *a;
int * &p = a;
这种是C++中的引用,p本身不占用内存空间,只是a的一个别名,对p的访问完全等同于对a的访问。

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

int * a;
int **p = &a;
这里a本身是指针变量,在C语言中每个变量都有自己的内存空间,对变量做&操作,可以取得这个空间的首地址。于是&a就是取a的地址赋值给p,这样,*p就等同于a。
全部回答
  • 1楼网友:一个狠有粪量的人
  • 2021-02-22 12:30
对地址的指针,双重指针
  • 2楼网友:酒空人散
  • 2021-02-22 11:33
m=*a是指 给m赋值 a指针所指向的值 指针a再加一个*是指这个指针所指向的值
  • 3楼网友:妳説啲訫動
  • 2021-02-22 10:19
1. (CPlex* & pHead,。。。。) C++扩充的“引用”参数,C是没有这个功能的, 这pHead虽是个对象指针,如果不加 & ,它本身也是传值调用, pHead这是实参是改变不了的,如果加了 &它就是传址的(地址的地址), 这样,子程序中改变形参pHead的指向,实参也会同步改变,所以, “引用”参数传递更方便。如果你用C和话,你得这样定义 CPlex ** pHead 更不方便 . 2. 反向添加新结点的好处: 总是对队头添加,就不需要一步步的指针移动队尾的前一结点,否则,费事费时。
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯