逗號運算子

2021-06-16 07:30:24 字數 646 閱讀 3498

在c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後乙個表示式的值。

假設b=2,c=7,d=5,

a1=(++b,c--,d+3);

a2=++b,c--,d+3;

對於第一行**,有三個表示式,用逗號分開,所以最終的值應該是最後乙個表示式的值,也就是d+3,為8,所以a1=8。

對於第二行**,那麼也是有三個表示式,這時的三個表示式為a2=++b、c--、d+3,(這是因為賦值運算子比逗號運算子優先順序高)所以最終表示式的值雖然也為8,但a2=3。

注意:逗號運算的結合性是從左至右,完畢之後整個表示式的值是最後乙個表示式的值。

假設:int a,x=2,y=5;

a[1]=(x+3,y++,x++);那麼最終結果是:a[1]=3 x=3 y=6; (不對,a[1] 應該等於2)

a[2]=(x++,x+3,x+7);那麼最終結果是:a[2]=10 x=9; ( 而a[2] 應該等於11)

最後假設應改為:

假設:int a[2],x=2,y=5;

a[0]=(x+3,y++,x++);那麼最終結果是:a[0]=2 x=3 y=6;

a[1]=(x++,x+3,x+7);那麼最終結果是:a[1]=11 x=4;

逗號運算子

c 語言中,逗號 也可以是運算子,稱為逗號運算子 comma operator 逗號運算子可以把兩個以上 包含兩個 的表示式連線成乙個表示式,稱為逗號表示式。其一般形式為 子表示式1,子表示式2,子表示式n 例如 a b,c b,c 逗號運算子的優先順序是所有運算子中級別最低的,通常配合 for 迴...

逗號運算子

逗號運算子是指在c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後乙個表示式的值。例子 int a1,a2,b 2,c 7,d 5 第1行 a1 b,c d 3 第2行 a2 b,c d 3 第3行 對於給a1賦值的 有三個表示式,用逗號分開,所以最終的值...

逗號運算子

逗號運算子保證被它分開的表示式按照從左到右的次序進行計算,換句話說,逗號是個順序點,逗號左邊產生的所有 都在程式執行到逗號右邊之前生效。這一點在逗號右邊的表示式用到逗號左邊變數的時候尤其重要 ounces cost ounces first oz 這將遞增ounces,並在第二個子表示式中實用oun...