C++程序为什么这个运行会这样,函数的调用机制是什么,初学者对此过程不太理解,希望能有了解的人帮忙解释一下 谢谢!
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
C++的调用机制是什么,为什么结果会这样
C++程序为什么这个运行会这样,函数的调用机制是什么,初学者对此过程不太理解,希望能有了解的人帮忙解释一下 谢谢!
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 技术专家团-Plio大咸鱼 2021-09-13 11:45关注
大概是
栈在生长main之后先生长了func1,在其中初始化了的局部变量n,并对其赋值
在fun1返回后,栈顶回退,但是func1存的值(在栈中的值)暂时没被清除(因为没有新的函数去覆盖它)
然后调用func2,栈再次从main向上拓展,此时m恰好与之前的n地址相同,而且没有被重新赋值
然后你再直接取m处取值,拿到的应该是n之前在栈中存放的值
只是我的理解,不一定完全准确
有帮助望采纳解决 1无用
悬赏问题
- ¥15 rexroth indramotion MTX micro系统轴耦合编程
- ¥100 springboot2.7.x 整合 sharding 的问题
- ¥15 如何通过命令行操作统信360安全浏览器?
- ¥15 upload-labs-master第三关
- ¥15 关于LT3758反激式负压电源,功率三极管烧毁的问题
- ¥20 aruba ap305 CAP转IAP
- ¥20 rockchip rk3588 ffmedia运行异常
- ¥30 如何用 Java 简单系统设计?(相关搜索:服务器|面向对象设计|随机数)
- ¥15 错误使用 mex Embedding metadata in the MEX file failed.
- ¥30 Fractal eXtreme 64-bit求解锁15天限制