作业帮 > 综合 > 作业

堆栈栈顶地址高还是栈底地址高?还要进栈出栈的顺序如何,即先调整指针还是先压栈或出栈,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/04 06:31:52
堆栈栈顶地址高还是栈底地址高?还要进栈出栈的顺序如何,即先调整指针还是先压栈或出栈,
如果是你自己写一段代码来实现栈,那所有的这些问题都取决于你自己的决定.
但要注意的是压栈和出栈的匹配.
就是说,如果你是先压栈,后移动指针,那说明指针指向的是空闲的区域.那出栈的时候就要先移动指针,再取值.
如果你问的是程序运行时临时变量存放的栈.那低地址是栈顶还是高地址是栈顶,这取决于系统架构.x86平台和arm平台等等,是不同的.
再问: 如果出栈的时候先移动指针,那你想pop出的那个元素不是就无法操控了吗(因为指针 已经不指向它了啊?)。
再答: 出栈的时候是否需要先移动指针取决于你的压栈的时候是怎么做的。 如果压栈的时候是先存值,再移动栈指针。那说明栈指针指向的是栈中的空闲位置。 那么,既然栈指针指向的是空闲位置,那么出栈的时候,当然需要先把栈指针移动一下,使其指向栈中的实际的元素。然后再取出该元素的值。这样算完成了一次出栈操作。此时,栈的指针还是指向栈中的空闲位置。等待进行下一次的栈操作。