【发布时间】:2011-01-15 17:58:07
【问题描述】:
请看下面的代码sn-ps。在第二个函数中,我返回一个引用。我在函数中声明一个局部变量并返回地址。由于变量是本地的,我相信它的生命在它退出函数时结束。我的问题是,为什么即使删除了原始变量,也可以毫无例外地访问调用者的值?
int& b=funcMulRef(20,3);
int* a= funcMul(20,3);
int* funcMul(int x,int y)
{
int* MulRes = new int;
*MulRes = (x*y);
return MulRes;
}
int& funcMulRef(int x,int y)
{
int MulRes ;
MulRes = (x*y);
return MulRes;
}
问候, 约翰
【问题讨论】:
-
在funcMul上,我想你的意思是
*MulRes = (x*y) -
@Muggen。感谢您指出。现已更正。