2013-08-31 89 views
-7

在這裏我得到了o/p爲'1',但我的期望是'100'。爲什麼這樣?請說明一下。謝謝!從左到右或倒數的算術表達式評估?

int main() 
    { 
      cout << 100/10/10 << endl; 
    } 
+1

如果您不是100%確定,請使用括號 - 因爲其他讀者的代碼在查看代碼時可能具有相同的「問題」。 –

+0

它不是真的關於「評估順序」,而是「結合性」(它給出了操作的評估順序,而不是它們的操作數)。 –

回答

4

對於具有相同優先級的算術運算符,從左到右進行評估。這就是爲什麼你得到1 -

  1. 首先,100除以10,結果10
  2. 結果由10又分爲,造成1

看看這個Precedence Table

0

當運營商具有相同的優先級時,它們從左到右進行評估。

這是基本的代數。

+1

不確定「基本代數」......考慮假設的求冪運算符'**':'a ** b ** c'應該是'a **(b ** c)',即右關聯。 –

0

從TCPPL第4版的257頁

元運算符和賦值運算符是右結合;所有 其他人都是左聯合的。例如,a = b = c意味着a =(b = c)而 a + b + c表示(a + b)+ c