请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于栈区变量内存地址



https://img1.sycdn.imooc.com//szimg/5ef0853c0938dc5811850753.jpg

上面这张图是我自己在编译器上运行的,内存地址是递增的


下面这张图是老师上课的内容,内存地址是递减的


https://img1.sycdn.imooc.com//szimg/5ef085a909e6401408830718.jpg

为什么两者运行结果不一样

正在回答 回答被采纳积分+3

3回答

quickzhao 2020-06-22 21:08:52

这和32位64位系统生成栈空间的方式有关,64位函数在函数入口时开辟空间是朝高地址分配的,32位相反,我用的是32位的,你切回到32位代码生成就一样了。

1 回复 有任何疑惑可以回复我~
提问者 云风眠 2020-06-22 18:54:47

老师 我多试了几个变量 地址还是一样递增在编译器上 

https://img1.sycdn.imooc.com//szimg/5ef08def09d9cbb311760894.jpg

https://img1.sycdn.imooc.com//szimg/5ef08def095bd58d09480617.jpg


0 回复 有任何疑惑可以回复我~
提问者 云风眠 2020-06-22 18:17:37

图片 手机上看不太清楚 只能电脑端上来点击图片查看大图才能看的清楚 辛苦老师在PC端来看一下了

0 回复 有任何疑惑可以回复我~
  • 你多试几个变量,或者看下生成的汇编代码到底什么样。
    回复 有任何疑惑可以回复我~ 2020-06-22 18:36:33
  • 提问者 云风眠 回复 quickzhao #2
    老师我多试了几个变量 然后在我这边的编译器上还是递增的 相关的截图在我另外一个评论里 麻烦老师看一下
    回复 有任何疑惑可以回复我~ 2020-06-22 18:56:03
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信