小编roo*_*kea的帖子

dc unix:即使在同一数组索引处存储新值后仍保留初始值

我无法理解手册页中给出的这个例子dc

$ dc  
 1 0:a 0Sa 2 0:a La 0;ap  
 1  
Run Code Online (Sandbox Code Playgroud)

对我来说答案应该是 2 因为:

  1. 1 0:a
    这里我们将 1 存储在 array 的第 0 个位置a

  2. 0Sa
    现在我们将 0 压入 register 的堆栈a

  3. 2 0:a 现在我们再次将 2 存储在数组的第 0 个位置,a从而覆盖先前存储在该位置的 1。

  4. La
    现在我们弹出存储在寄存器堆栈中的 0a并将其推送到主堆栈。

  5. 0;a
    现在我们再次将 0 推送到主堆栈,然后将其弹出以用作数组索引,因此我们将存储在数组第 0 个位置的 2 推a送到主堆栈。

  6. p
    现在我们打印主堆栈的顶部,即 2。所以答案应该是 2。

我错过了什么?

PS- 我想dc用作标签,但看起来它不存在,因此必须至少使用一个标签debian(我的工作站操作系统)。

calculator dc

5
推荐指数
2
解决办法
1262
查看次数

标签 统计

calculator ×1

dc ×1