我对计算器的理解是它们是基于堆栈的。当您使用大多数计算器时,如果您键入,1 + 2 [enter] [enter]
您会得到5
. 1
被压入堆栈,+
是运算符,然后2
被压入堆栈。第一个[enter]
应该弹出1
并2
退出堆栈,添加它们以获取3
然后推3
回堆栈。第二个[enter]
不应该访问,2
因为它实际上不存在于任何地方。
如何2
保留以便第二个[enter]
可以使用它?
是2
在之前推回堆栈3
还是保留在其他地方供以后使用?如果它被推回堆栈上,你可以想象通过重复执行导致堆栈溢出[operator] [number] [enter] [enter]
吗?