我试图得到堆栈的概念,我有困惑,我试图找到答案,但找不到。在
好的,所以值只从顶部存储在堆栈中,这意味着它会随着值的位置一个一个地增长而增长,这意味着增长的方向应该是向上的,如图所示:
但堆栈向下生长如所述。怎样??在
当值存储在堆栈中时,它占用空间,因此意味着堆栈不会因为内存减少而增长,但当值从堆栈返回时,堆栈会增长,因为堆栈中的存储是空闲的。还有一个stackoverflow上的答案是Direction of glow of stack is opposite to the direction of glow我说的对吗???如果没有请解释
堆栈通常表示后进先出(LIFO)数据结构。它是一个数据结构,有“push”和“pop”操作。堆栈上的项的内存位置是向下还是向上“增长”是一个实现细节,可以用任何一种方式实现。在
当程序员说堆栈时,我们通常指的是当前进程(线程)的调用堆栈。在我的机器上,调用堆栈确实向下增长,因此在执行“push”指令后,堆栈的顶部位于较低的地址。这也是一个实现细节,并不是一个C程序员通常需要担心的事情。在
历史上,堆栈的“底部”位于内存的顶部,向下增长,堆从内存的底部开始,向上增长。这使得它们互相覆盖的可能性最小。在
从这段历史来看,例如在英特尔,push-and-pop CPU指令与这个不断下降的堆栈一起工作。所以,如果你把东西推到堆栈上,堆栈指针会减小,如果你弹出某个东西,它会增加。在
相关问题 更多 >
编程相关推荐