1

のマンページにあるこの例を理解できませんdc:

$ dc  
 1 0:a 0Sa 2 0:a La 0;ap  
 1  

私にとって答えは2であるべきです:

  1. 1 0:a
    ここでは、配列 の 0 番目の位置に 1 を格納しaます。

  2. 0Sa
    次に、 register のスタックに 0 をプッシュしますa

  3. 2 0:a ここでも、配列の 0 番目の位置に 2 をa格納し、その位置に格納されていた前の 1 を上書きします。

  4. La
    次に、レジスタのスタックに格納されている 0 をポップしaて、メイン スタックにプッシュします。

  5. 0;a
    ここで再び 0 をメイン スタックにプッシュし、それをポップして配列インデックスとして使用し、配列の 0 番目の場所に格納されている 2aをメイン スタックにプッシュします。

  6. p
    ここで、メイン スタックの一番上にある 2 を出力します。したがって、答えは 2 になるはずです。

私は何が欠けていますか?

編集 :

$ dc -V
dc (GNU bc 1.06.95) 1.3.95
4

1 に答える 1