返回临时变量的问题

ToConnection 2015-08-01 01:43:28
...全文
126 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjq2003 2015-08-04
  • 打赏
  • 举报
回复
CircleListNode* ret=pCurrent->next;//这个返回的是临时变量吗? return ret; 和返回pCurrent->next是一样的 等于下面代码 return pCurrent->next;
二班的码农 2015-08-01
  • 打赏
  • 举报
回复
楼主是想获得某个节点的数据吗? 如果只是访问数据,而不对返回的节点进行更改操作的话,这样写就可以了,而且执行效率高 如果不能保证对返回的指针数据是否会修改,可以不要采用指针,定义一个变通变量将指针数据拷贝一份,再返回一个非指针的节点就行
ToConnection 2015-08-01
  • 打赏
  • 举报
回复
那这样写代码不好,我改怎么写,是new一个指针吗,用完之后再删除,这样是不是很麻烦
二班的码农 2015-08-01
  • 打赏
  • 举报
回复
楼主, 不是觉得不是,就不是,我可以肯定回答
ToConnection 2015-08-01
  • 打赏
  • 举报
回复
我觉得不是临时变量
二班的码农 2015-08-01
  • 打赏
  • 举报
回复
不是,ret指向的内存空间并不是在函数体中开辟的堆栈空间(即局部变量) 不知道楼主具体想明白什么
ToConnection 2015-08-01
  • 打赏
  • 举报
回复
CircleListNode* circleList_Get(CircleLinkList* pList, int pos)
{
if (pList==NULL||pos<0)
{
cout<<"circleList_Get() paramter is error"<<endl;
return NULL;
}
CircleListNode* pCurrent=(CircleListNode*)&pList->head;
for (int i=0;i<pos;i++)
{
pCurrent=pCurrent->next;
}

CircleListNode* ret=pCurrent->next;//这个返回的是临时变量吗?
return ret;
}

上面的代码返回的是临时变量吗?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧