| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1999 人关注过本帖
标题:c++函数里面传递的变量值是在遇见return 后释放内存空间的吗?
只看楼主 加入收藏
newCpp
Rank: 5Rank: 5
来 自:火星
等 级:职业侠客
威 望:3
帖 子:256
专家分:375
注 册:2009-8-17
结帖率:97.83%
收藏
 问题点数:0 回复次数:5 
c++函数里面传递的变量值是在遇见return 后释放内存空间的吗?
c++传递给函数里面变量的值是在遇见return 后释放内存空间的吗?
搜索更多相关主题的帖子: 函数 变量 内存 return 空间 
2009-10-14 18:48
GONES
Rank: 1
等 级:新手上路
帖 子:22
专家分:4
注 册:2007-6-18
收藏
得分:0 
看这个变量的作用域
2009-10-14 19:15
阿冲
Rank: 2
等 级:论坛游民
帖 子:29
专家分:40
注 册:2009-10-5
收藏
得分:0 
当被调函数返回一个值的时候,会产生一个临时变量,而这个临时变量就会负责初始化接收的变量,初始化完毕后,临时变量就消失了~~~~
2009-10-15 17:30
loookc
Rank: 2
等 级:论坛游民
帖 子:24
专家分:11
注 册:2009-10-15
收藏
得分:0 
是的就像下面一段代码
void swap(int v1,int v2)
{
   int tmp=v2;
   v2=v1;
   v1=tmp;
}


int main()
{
   int i=20;
   int j=10;
   cout<<"before swap():\ti:"
       <<i<<"\tj:"<<j<<endl;
swap(i,j);
   cout<<"after swap():\ti:"
       <<i<<"\tj:"<<j<<endl;
   return 0;
}
是不会实现数据的交换的,原因就是在return后释放了int swap()函数的内存空间



[ 本帖最后由 loookc 于 2009-10-20 13:39 编辑 ]
2009-10-20 13:37
caolihui1008
Rank: 2
来 自:石家庄
等 级:论坛游民
帖 子:33
专家分:75
注 册:2009-10-19
收藏
得分:0 
这应该要看是不是动态分配的吧
2009-10-20 13:43
miaokk
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2009-10-21
收藏
得分:0 
回复 3楼 阿冲
我记得这个不能实现交换不是因为是程序最后的return 释放空间的原因吧,是这个方式的变量传送并不是地址传送的原因吧
2009-10-21 14:26
快速回复:c++函数里面传递的变量值是在遇见return 后释放内存空间的吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013816 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved