逗號運算子

2022-04-30 13:51:10 字數 555 閱讀 4675

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

例子:int a1,a2,b=2,c=7,d=5; // 第1行

a1=(++b,c--,d+3); // 第2行

a2=++b,c--,d+3; //第3行

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

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

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

int i=24;

int n = (i++,i++,i++,i++); // n == 27[1]

因為逗號運算子的結合性是自左向右,所以四個i++會依次執行,但是最後乙個i++在賦值之後才進行運算,所以最終返回27。

逗號運算子

在c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後乙個表示式的值。假設b 2,c 7,d 5,a1 b,c d 3 a2 b,c d 3 對於第一行 有三個表示式,用逗號分開,所以最終的值應該是最後乙個表示式的值,也就是d 3,為8,所以a1 8。對於第...

逗號運算子

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

逗號運算子

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