我使用&test1,应用了局部变量a,就是把a当做int &test1的返回值。
之后我将test1用x引用。
按理来说,在test1函数运行完后,在栈区的局部变量a应该被系统释放了,
如果没有编译器保存,cout<<x;的结果应该不能是a的值,
就算编译器保存了一次数据,在第二次cout后就不是a的值了。
然而事实是:每一次都输出a的值,就好像栈区没有释放一样。
大佬们可以解释一下吗?
我使用&test1,应用了局部变量a,就是把a当做int &test1的返回值。
之后我将test1用x引用。
按理来说,在test1函数运行完后,在栈区的局部变量a应该被系统释放了,
如果没有编译器保存,cout<<x;的结果应该不能是a的值,
就算编译器保存了一次数据,在第二次cout后就不是a的值了。
然而事实是:每一次都输出a的值,就好像栈区没有释放一样。
大佬们可以解释一下吗?