小白今天学C++,看到这么一个例子,有些不懂,恳请各位大牛解惑。
源码如下:
#include
int f1();
int f2();
int main()
{
f1();
cout<<f2()<<endl;
return 0;
}
int f1()
{
int m=12345;
return m;
}
int f2()
{
int n;
return n;
}
书上的运行结果如下:12345
书上的解释是:在返回到main()函数后,f1()和f2()的局部变量和形参都消失,但对应内存中的内容还存在,这就是输出12345的原因。
可是我试了一下,实际输出结果为:-858993460
我现在不知道到底哪个才是对的了,到底是局部变量被存在栈里,用完了后;是变量和变量的内容都消失了?还是只是消失这个变量名,而实际内容不消失呢?到底书上的结果和解释是对的,还是实际错了呢?
关于函数内存栈的释放问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
悬赏问题
- ¥17 pro*C预编译“闪回查询”报错SCN不能识别
- ¥15 微信会员卡接入微信支付商户号收款
- ¥15 如何获取烟草零售终端数据
- ¥15 数学建模招标中位数问题
- ¥15 phython路径名过长报错 不知道什么问题
- ¥15 深度学习中模型转换该怎么实现
- ¥15 HLs设计手写数字识别程序编译通不过
- ¥15 Stata外部命令安装问题求帮助!
- ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
- ¥15 TYPCE母转母,插入认方向