加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 以参考方式返回

发布时间:2020-12-16 10:28:37 所属栏目:百科 来源:网络整理
导读:请参阅以下代码段.在第二个函数中,我将返回一个引用.我在函数中声明一个局部变量并返回地址.由于变量是局部的,我相信它的生命在退出函数时结束.我的问题是,为什么即使原始变量被删除,也可以在没有任何异常的情况下从调用者访问值? int b=funcMulRef(20,3);i
请参阅以下代码段.在第二个函数中,我将返回一个引用.我在函数中声明一个局部变量并返回地址.由于变量是局部的,我相信它的生命在退出函数时结束.我的问题是,为什么即使原始变量被删除,也可以在没有任何异常的情况下从调用者访问值?

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;

}

问候,
约翰

解决方法

第二个函数的行为是未定义的;任何事情都可能发生,并且在许多情况下,它似乎会起作用,因为没有任何东西覆盖过去将结果存储在堆栈中的位置.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读