轉 逗號表示式

2021-09-03 08:53:47 字數 635 閱讀 1965

c語言提供一種特殊的運算子,逗號運算子,優先級別最低,它將兩式聯接起來,如:(3+5,6+8)稱為逗號表示式,其求解過程先表示式1,後表示式2,整個表示式值是表示式2的值,如:(3+5,6+8)的值是14,(a=3*5,a*4)的值是60,原因在於賦值運算優先順序高於逗號表示式。

逗號表示式的要領:

1.從左到右逐個計算;

2.逗號表示式作為乙個整體,它的值為最後乙個表示式的值;

3. 逗號表示式的優先級別在所有運算子中最低。

main()

[a]2,3,3 [b]2,3,2 [c]2,3,1 [d]1,1,1

解析:x和y的值經過自增以後分別為2和3,d可以排除。剩下3個選項選擇什麼呢?

如果是(x++,y++,++y)實際上可以看成(1,1,3)整個逗號表示式的值應該是3,那麼選a。

如果是(x++,++y,y++)實際上可以看成(1,2,2)整個逗號表示式的值應該是2,那麼選b。

但這是錯的,這兒還有賦值運算子。賦值運算子的優先順序是14,而逗號表示式的優先順序是15,也就是說上面的表示式中應該等價於這樣的結合:(z=x++),y++,++y;如果這樣寫的話,則答案很清晰,為:2,3,1

正確答案選c。

--------------------- 

原文: 

逗號表示式

c語言提供一種特殊的運算子 逗號運算子。用它將兩個表示式連線起來。如 3 5,6 8 稱為逗號表示式,又稱為 順序求值運算子 逗號表示式的一般形式為 表示式1,表示式2 逗號表示式的求解過程是 先求解表示式1,再求解表示式2。整個逗號表示式的值是表示式2的值。例如,上面的逗號表示式 3 5,6 8 ...

逗號表示式

c語言提供一種特殊的運算子 逗號運算子。用它將兩個表示式連線起來。如 3 5,6 8 稱為逗號表示式,又稱為 順序求值運算子 逗號表示式的一般形式為 表示式1,表示式2 逗號表示式的求解過程是 先求解表示式1,再求解表示式2。整個逗號表示式的值是表示式2的值。例如,上面的逗號表示式 3 5,6 8 ...

逗號表示式

define a b,c 表示式1,表示式2,表示式3,表示式n 逗號表示式的要領 1 逗號表示式的運算過程為 從左往右逐個計算表示式。2 逗號表示式作為乙個整體,它的值為最後乙個表示式 也即表示式n 的值。3 逗號運算子的優先級別在所有運算子中最低。c語言提供一種特殊的運算子,逗號運算子,優先級別...