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;
}
C++中指针前还加&是什么意思
答案:4 mip版
解决时间 2021-02-22 15:47
- 提问者网友:空气里的回忆
- 2021-02-22 08:28
最佳答案
- 二级知识专家网友:没仙气的仙女
- 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 在定义时使用,如
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. 反向添加新结点的好处:
总是对队头添加,就不需要一步步的指针移动队尾的前一结点,否则,费事费时。
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯