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; } 问候, 解决方法
第二个函数的行为是未定义的;任何事情都可能发生,并且在许多情况下,它似乎会起作用,因为没有任何东西覆盖过去将结果存储在堆栈中的位置.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |