注册 登录
编程论坛 C++教室

c++函数里面传递的变量值是在遇见return 后释放内存空间的吗?

newCpp 发布于 2009-10-14 18:48, 2003 次点击
c++传递给函数里面变量的值是在遇见return 后释放内存空间的吗?
5 回复
#2
GONES2009-10-14 19:15
看这个变量的作用域
#3
阿冲2009-10-15 17:30
当被调函数返回一个值的时候,会产生一个临时变量,而这个临时变量就会负责初始化接收的变量,初始化完毕后,临时变量就消失了~~~~
#4
loookc2009-10-20 13:37
是的就像下面一段代码
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 编辑 ]
#5
caolihui10082009-10-20 13:43
这应该要看是不是动态分配的吧
#6
miaokk2009-10-21 14:26
回复 3楼 阿冲
我记得这个不能实现交换不是因为是程序最后的return 释放空间的原因吧,是这个方式的变量传送并不是地址传送的原因吧
1