天天看點

c語言逗号表達式(C語言逗号表達式可以出現自身嗎)

C語言中逗号表達式的問題

逗号表達式的運算級最低,比指派運算符級别還低。

是以 y=(x=a+b),(b+c);

先算x=a+b=6,再y=x=6;而後面的b+c不影響x和y的值。

是以最終x,y的值都是6.

隻不過 y=(x=a+b),(b+c);這整個式子的值是b+c=10而已。

如果是y=((x=a+b),(b+c)); 那麼才結果是x=6,y=b+c=10y=(x=a+b),(b+c);

包括一個指派表達式,和一個算術表達式,y的值是6,整個表達式的值為10.

也就是說 y=((x=a+b),(b+c));時 y的值為10.

自己再試下咯。在c/c++中逗号表達式的運算結果是逗号之前的部分,逗号後面的你可以了解順便做的工作

在你的代碼中

y=(x=a+b),(b+c);

這一句中,運算順序

(1).x=a+b得到x=6

(2)b+c

(3)y=x=a+b=6

是以結果自然就是y和x都等于6了如果是((x=a+b),(b+c))實際上可以看成(6,10)整個逗号表達式的值應該是10

但這是錯的,這兒還有指派運算符。指派運算符的優先級是14,而逗号表達式的優先級是15,也就是說上面的表達式中 y=(x=a+b),(b+c);應該等價于這樣的結合:y=x,10;如果這樣寫的話,則答案很清晰,為:6

C語言逗号表達式計算