函数调用return时j被销毁

k在包围括号的末端被破坏

如果我为j传递9,则会创建k并将其分配为81

返回k将设置func1,func1是对整数= k的引用

返回将立即终止功能

我的问题是,k和j是否在return语句处终止?

如果它们是func1,则不应引用任何内容...

但我试图运行此代码,它的工作原理...

int& func1(int j){
 int k = j*j;
 return(k);
}

最佳答案

它有效...


不,它似乎有效。尝试访问func1返回的引用时,您将进入“未定义行为”领域。那时所有的赌注都没有了,它可以打印出42,什么也不打印,崩溃,吃掉CMOS电池等。

09-04 16:04
查看更多