C語言逗號運算子和逗號表示式基礎總結

2022-05-29 18:27:11 字數 1084 閱讀 5740

定義變數用於分隔變數:int a,b

輸入或輸出時用於分隔輸出表列 printf("%d%d",a,b)

語法:表示式1,表示式2,...,表示式n

表示式的值:表示式n的值

優先順序:最低

運算順序:左->右

if(a>b, a>c)     max=a;

else max=0;

t=(a=a+3,a/b,b+1,++c);

printf() 輸出 max 和 t 的值

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 ...