社区
C++ Builder
帖子详情
返回临时变量的问题
ToConnection
2015-08-01 01:43:28
...全文
154
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;
}
上面的代码返回的是临时变量吗?
函数
返回
指针时,不能
返回
临时
变量
的地址,会出
问题
函数
返回
指针时,不能
返回
临时
变量
的地址: 代码如下, #include<iostream> #include<Windows.h> using namespace std; int *add1(int x, int y) { int sum = x + y; return ∑ } int main(void) { int a = 3; int b = 5; int *sum = NULL; sum = add1(a, b); cout <
C++中
返回
临时
变量
指针
问题
如下面所示的这个程序,按照道理 cChar应该是局部
变量
,在函数调用结束时,就应该销毁了,为什么还能
返回
呢? 这是因为,在函数结束的时候,销毁的只是局部
变量
,但是该局部
变量
指向的这个内存单元仍然存在,就是说aaaaaaaa在内存单元中仍然存在,所以
返回
实 际存在的内容是不会有
问题
的。 注意:是不能,
返回
指向
临时
变量
的指针,而不是,不能
返回
一个
临时
指针
变量
。 同时,内存单元是可以被覆盖的,详情见
调用函数
返回
值值
临时
变量
问题
对于所调用的函数里面的
临时
变量
,在函数调用过程中是被压到程序进程的栈中的,当函数退出时,
临时
变量
出栈,即
临时
变量
已经被销毁,
临时
变量
占用的内存空间没有被清空,但是已经可以被分配给其他
变量
了,所以有可能在函数退出时,该内存已经被修改了,对于
临时
变量
来说已经是没有意义的值了。 在C中,16bit程序中,
返回
值保存在ax寄存器中,32bit程序中,
返回
值保持在eax寄存器中,如果是64bit
返回
值,...
osstringstrream,stringstream str()
返回
临时
变量
问题
我觉的要说清楚首先要从函数
返回
的
临时
变量
的生命周期说起:函数
返回
的
临时
变量
是放在堆栈上的,所以
返回
来后如果你没有调用其他的函数,那么这个
临时
变量
在依然保存在堆栈中,是可以被引用的。因为这时堆栈并没有被破坏。但是一旦调用其他函数后堆栈被破坏了,那个
返回
值就没有用了。例如:一个函数
返回
类型是stringstring func(){ String a;
【求救贴】C++
临时
变量
返回
销毁
问题
困扰好久一直没有解决,求求求了。今天突然有发现以前搁置的
问题
,依然没有得到解决。这个由于
临时
变量
c被释放掉,会输出无意义数。这个代码输出是3,but。
C++ Builder
13,871
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章