qq_16564129 2021-09-13 11:40 采纳率: 0%
浏览 53

C++的调用机制是什么,为什么结果会这样

img


C++程序为什么这个运行会这样,函数的调用机制是什么,初学者对此过程不太理解,希望能有了解的人帮忙解释一下 谢谢!

  • 写回答

4条回答 默认 最新

  • 关注

    大概是
    栈在生长main之后先生长了func1,在其中初始化了的局部变量n,并对其赋值
    在fun1返回后,栈顶回退,但是func1存的值(在栈中的值)暂时没被清除(因为没有新的函数去覆盖它)
    然后调用func2,栈再次从main向上拓展,此时m恰好与之前的n地址相同,而且没有被重新赋值
    然后你再直接取m处取值,拿到的应该是n之前在栈中存放的值
    只是我的理解,不一定完全准确
    有帮助望采纳

    评论

报告相同问题?

问题事件

  • 创建了问题 9月13日

悬赏问题

  • ¥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天限制