2016-05-17 89 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是的,每種語言都有自己的操作員關聯性。但是,您必須按照您使用的語言定義的關聯性進行移動。您正在閱讀的書和使用的語言(彙編)遵循從右到左的關聯性進行分配。實際上大多數編程語言都是從右到左進行分配。 –