是否可以重用堆栈中的值?

Is it possible to reuse a value in a stack?

我希望这不是一个愚蠢的问题。我目前正在尝试了解线程及其内存分配。在那里我遇到了堆栈的概念。我相信已经理解了 FIFO 的(相当简单的)概念,但我不理解的是:

如果我有一个线程并执行它,那么该方法将堆栈用于所有数据,但如果堆栈是 FIFO,那么您只能使用每条数据一次,因为一旦访问了数据然后从堆栈中弹出。但是如果我有一个使用 f.e 的方法呢?一个变量两次还是三次? (编译)进程是否事先知道,它必须将数据三次放入堆栈,因为它被使用了 3 次,或者这是如何工作的?

非常感谢您!!

通常,对函数或方法的每次调用都会获得自己的堆栈帧。被压入和弹出的是堆栈帧,而不是单个变量。所以一个方法调用可以多次访问同一个变量,因为该方法调用使用同一个堆栈帧来引用它。