2016-05-17 4 views
-1

有限の値(すべてが整数)を持つ3つの変数m、n、rが与えられました。 今、私は< -rとn < -r(mとnにrの値を代入する)を行う必要があります。そして、 "The Art of Computer Programming vol。1"で操作を組み合わせることができます。 m < -n < -r数字の置換

しかし、上記のステートメントは、「mの値にnを割り当て、次にnにrの値を割り当てる」という意味ではありません。

ありがとうございます。

+0

右から左への割り当てが関連付けられています。したがって、暗黙のカッコがあります: 'm < - (n < - r)' – shawnt00

答えて

0

割り当て順序は右から左です。したがって、m<-n<-rn<-rと解釈され、次にm<-nと解釈されます。

nが最初の割り当て後にrに等しいので、m<-nm<-rは同じです。

0

割り当て=演算子は、左側に右側の値を割り当てるのと同じです。それが左結合性への権利は以下のため、例えばここで

int a = 1 + 2; 

最初1+2のために評価され、aに割り当てられています。

は今、あなたはそれが再び右から左結合性には次のこの

int a=b=2; 

のようなものを持っている場合。右から最初にb=2が評価され、2がbに割り当てられると、baに割り当てられます。これはこのように動作しますa=(b=2)

あなたの質問にはm<-n<-rがあります。これはこのように動作しますm<-(n<-r) 参照が表示されますOperator Associativity

+0

小さな疑問...私は演算子の結合性は私たちが使用する言語に依存することを知りました...私の質問が有効になる機会があります。 – user27838

+0

@ user27838はい、すべての言語には独自の演算子結合があります。しかし、あなたが使用する言語によって定義された結合性で動かなければなりません。あなたが読んでいる本と使用されている言語(アセンブリ)は、割り当てのための右から左への連想に従います。実際には、ほとんどのプログラミング言語は割り当てのために右から左へと続く。 –