函数调用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电池等。