这确实是一个理论问题。我的示例将使用 C,但语言并不那么重要。
假设我在堆栈上创建了很多很多变量
int x0 = 0;
int x1 = 1;
.
.
.
int x100 = 100;
现在我想打电话给 x0。由于堆栈是 LIFO,x100,...,x1 临时存储在哪里,而 x0 正在被获取?我的意思是,它们不必被放在寄存器上吗?如果是这样,根本就没有足够的寄存器。使用自助餐厅托盘的标准类比,如果我试图到达底部托盘,我需要很多人在我拿到它的时候抓住其他托盘,除非有三个堆叠并且我可以做一些“河内塔” “ 解决方案...
显然,这个问题表明我对堆栈及其工作原理的无知。提前致谢。