定義變數用於分隔變數:int a,b
輸入或輸出時用於分隔輸出表列 printf("%d%d",a,b)
語法:表示式1,表示式2,...,表示式n
表示式的值:表示式n的值
優先順序:最低
運算順序:左->右
if(a>b, a>c) max=a;printf() 輸出 max 和 t 的值else max=0;
t=(a=a+3,a/b,b+1,++c);
max=3, t=2
解析:因為if語句中是乙個逗號表示式,所以先計算a>b,結果為0,需要注意到這裡的逗號是運算子而不是分隔符,然後再計算a>c,結果為1。進入條件中,把a的值3賦值給max;然後計算t的值,需要注意到這裡的逗號是運算子而不是分隔符a+3賦值給a,a=6,然後a/b得到1,然後b的值為4,++c先自增然後賦值,結果為2。
計算下面逗號表示式的值:
(a=2*4,a*5),a-3在這個逗號表示式中,先計算括號內的值,從左到右,a被賦值為8,然後a*5是這個含括號的逗號表示式的值,然後在計算括號外的a-3,a-3等於5,所以說這個式子的結果為5.
注意分清一般表示式和賦值表示式。
這兩個題目都是自增運算子與自減運算子和逗號運算子結合的題目,在測試中錯了兩道,
以i++為例:自增運算子的具體含義是:
1. 先進行i與其他運算子的運算
2.再執行i=i+1
答案:d
解析:裡面含有順序運算子,首先計算a=3,然後b=a--,a的值先賦值給b,表示式的值為b,也就是x=b,然後a自減為2,所以x,a,b的值分別為3,2,3
答案:c
解析:先進行賦值 x=0 ,然後x+10,接著是x++,x先進行其他操作,也就是逗號運算子,然後再進行自增,所以結果為x=0.0
C語言逗號運算子和逗號表示式
c語言提供一種特殊的運算子 逗號運算子。用它將兩個表示式連線起來。如 3 5,6 8 稱為逗號表示式,又稱為 順序求值運算子 逗號表示式的一般形式為 表示式1,表示式2 逗號表示式的求解過程是 先求解表示式1,再求解表示式2。整個逗號表示式的值是表示式2的值。例如,上面的逗號表示式 3 5,6 8 ...
逗號運算子和逗號表示式
逗號運算子和逗號表示式 逗號運算子 逗號運算子是以逗號為分隔符的列表中最後乙個表示式的值。本質上講,逗號的作用是導致一系列運算都被順序執行。最右邊的那個表示式的值將作為整個逗號表示式的值,其他的表示式的值將會被丟棄。逗號運算子是所有運算子中級別最低的。例如,有如下表示式 var count 19,i...
c語言中逗號運算子和逗號表示式
c語言提供一種特殊的運算子 逗號運算子。用它將兩個表示式連線起來。如 3 5,6 8 稱為逗號表示式,又稱為 順序求值運算子 逗號表示式的一般形式為 表示式1,表示式2 逗號表示式的求解過程是 先求解表示式1,再求解表示式2。整個逗號表示式的值是表示式2的值。例如,上面的逗號表示式 3 5,6 8 ...