注册 登录
编程论坛 汇编论坛

关于堆栈的小问题

wingfeng 发布于 2009-09-27 20:06, 774 次点击
请问,若使用pop之后,那pop推出去的数是不是还存在在堆栈中?如果还是存在在堆栈中的话,那是否可以将堆栈的指针指到那个位置还是可以访问它的??
5 回复
#2
chenaiyuxue2009-09-27 20:33
个人理解:pop之后,不能说推出去的数还在堆栈中,因为SP已经指向了下一个位置,所以推出去的数已不在堆栈中;但是如果该数的位置没有被其他程序重新分配的话,那么该数应该还在原来的位置,将SP重新指向它时,应该还是可以访问的。
#3
zklhp2009-09-27 20:46
以下是引用chenaiyuxue在2009-9-27 20:33:08的发言:

个人理解:pop之后,不能说推出去的数还在堆栈中,因为SP已经指向了下一个位置,所以推出去的数已不在堆栈中;但是如果该数的位置没有被其他程序重新分配的话,那么该数应该还在原来的位置,将SP重新指向它时,应该还 ...

可以访问 但这样是不好的 不规范 不安全

当然 在它被覆盖之前 不会变~~~~
#4
wingfeng2009-09-28 10:50
这样啊,谢谢两位了。 这个还真是奇怪,明明推出去了,还存在里面呢。。。
#5
swp1601082009-09-28 14:05
就像你删除一个文件一样 虽然删除了但是 文件的内容还在 只是做了这个文件已经删除的标记
#6
阿贝2009-10-23 23:15
这个比喻好  了解了
1