当值从顶部存储时,堆栈如何向下增长?

2024-09-29 03:37:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图得到堆栈的概念,我有困惑,我试图找到答案,但找不到。在

好的,所以值只从顶部存储在堆栈中,这意味着它会随着值的位置一个一个地增长而增长,这意味着增长的方向应该是向上的,如图所示:

Stack grows upward example

但堆栈向下生长如所述。怎样??在

如果我理解正确,那么:

当值存储在堆栈中时,它占用空间,因此意味着堆栈不会因为内存减少而增长,但当值从堆栈返回时,堆栈会增长,因为堆栈中的存储是空闲的。还有一个stackoverflow上的答案是Direction of glow of stack is opposite to the direction of glow我说的对吗???如果没有请解释


Tags: of内存答案概念stack堆栈example空间
2条回答

堆栈通常表示后进先出(LIFO)数据结构。它是一个数据结构,有“push”和“pop”操作。堆栈上的项的内存位置是向下还是向上“增长”是一个实现细节,可以用任何一种方式实现。在

当程序员说堆栈时,我们通常指的是当前进程(线程)的调用堆栈。在我的机器上,调用堆栈确实向下增长,因此在执行“push”指令后,堆栈的顶部位于较低的地址。这也是一个实现细节,并不是一个C程序员通常需要担心的事情。在

历史上,堆栈的“底部”位于内存的顶部,向下增长,堆从内存的底部开始,向上增长。这使得它们互相覆盖的可能性最小。在

从这段历史来看,例如在英特尔,push-and-pop CPU指令与这个不断下降的堆栈一起工作。所以,如果你把东西推到堆栈上,堆栈指针会减小,如果你弹出某个东西,它会增加。在

相关问题 更多 >