返回对本地或临时变量的引用
看下面的代码。我知道它不会返回局部变量的地址,但为什么它仍然有效并将i
main()中的变量赋值为'6'?如果从堆栈内存中删除变量,它如何仅返回值?
#include <iostream>int& foo(){ int i = 6; std::cout << &i << std::endl; //Prints the address of i before return return i;}int main(){ int i = foo(); std::cout << i << std::endl; //Prints the value std::cout << &i << std::endl; //Prints the address of i after return}
HUX布斯
哆啦的时光机
噜噜哒
相关分类