我对计算器的理解是它们是基于堆栈的。当你使用大多数计算器时,如果你输入1 + 2 [enter] [enter]
,你会得到5
。 1
被压入堆栈,+
是运算符,则2
被压入堆栈。第一个[enter]
应该弹出1
和2
离开堆栈,将它们添加到3
然后再将3
推回堆栈。第二个[enter]
不应该有权访问2
,因为它在任何地方都不存在。计算器堆栈
2
如何保留,以便第二个[enter]
可以使用它?
是2
推回到堆栈之前3
还是保留在其他地方供以后使用?如果将它推回堆栈,可以想象通过重复执行[operator] [number] [enter] [enter]
会导致堆栈溢出?
只是一个观察,问题包含术语'堆栈溢出'...有趣的:) – kpax 2010-01-13 05:21:35
@kpax:有趣但不完全是巧合。尽管有误导性的标识,但这种编程现象是该网站的名称。 – Dinah 2010-01-13 14:27:16