2016-05-17 73 views
-1

我给出了三个有限值(全部是整数)的变量m,n,r。 现在我需要做m < -r和n < -r(分配m和n的值),并且我已经在“计算机编程艺术vol.1”中看过这些操作可以合并为 m < -n < -r替换号码

但是,上述说法并不意味着“给m赋值n,然后给n赋值r”。

在此先感谢。

+0

从右向左分配同事。所以有隐含的括号:'m < - (n < - r)' – shawnt00

回答

0

赋值顺序是从右到左。因此,m<-n<-r将被解释为:n<-r然后m<-n

由于n等于r第一次赋值后,m<-nm<-r是相同的。

0

作业=运算符就像将右侧值分配给左侧一样。对于如

int a = 1 + 2; 

这里先1+2进行评估,并因为它遵循从右到左结合分配给a

现在,如果你有这样的事情

int a=b=2; 

它再次如下从右到左的关联性。从右侧开始,b=2被评估并分配给2,然后b被分配给a。它的工作原理是这样的a=(b=2)

知道你的问题你有m<-n<-r。这将如此工作m<-(n<-r) 您可以看到参考Operator Associativity

+0

一个小小的疑问.............我知道操作符的相关性取决于我们使用的语言,...... ....所以有机会让我的问题有效。 – user27838

+0

@ user27838是的,每种语言都有自己的操作员关联性。但是,您必须按照您使用的语言定义的关联性进行移动。您正在阅读的书和使用的语言(汇编)遵循从右到左的关联性进行分配。实际上大多数编程语言都是从右到左进行分配。 –