鱼C论坛

 找回密码
 立即注册
查看: 2163|回复: 4

栈为空的的栈顶指针

[复制链接]
发表于 2015-8-14 19:50:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在栈为空时,单元的偏移地址为栈最底部的单元的偏移地址+2,这里的2是字节吧?也就是一个字。那么在下面代码中为什么栈顶sp是32呢??前面一共有16个字,32个字节,就是0-31,再+2不是33吗?为什么是32??我有点弄混了。。
QQ图片20150814194830.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-15 21:00:14 | 显示全部楼层
共有16个字,有32个字节,那么偏移地址变化是从0开始到31结束,这里就是32个字节了。栈空是栈顶指针指向的是栈底的下一个单元(偏移31+1=偏移为32),怎么不对啊!你说的32这个位置已经超出栈空间了,因为内存中是从0开始排的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-15 21:30:09 | 显示全部楼层
星空·无限 发表于 2015-8-15 21:00
共有16个字,有32个字节,那么偏移地址变化是从0开始到31结束,这里就是32个字节了。栈空是栈顶指针指向的 ...

不是,小甲鱼不是说栈为空时sp+2吗?突然又变成+1了,我似懂非懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-15 21:45:33 | 显示全部楼层
你把 概念搞混了。pop是先取值在sp+2,栈空时sp指向栈底+1位置!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-17 22:00:45 | 显示全部楼层
好的,我知道了,谢谢~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 14:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表