逗號運算子
計算其左運算元,丟棄結果值,然後計算其許可權運算元,結果產生其最右運算元的值。
int x = 42, y = 42;
printf("%i\n", (x *= 2, y)); /* Outputs "42". */
逗號運算子在其運算元之間引入了一個序列點 。
請注意,函式呼叫中使用的逗號分隔引數不是逗號運算子,而是稱為與逗號運算子不同的分隔**符。因此,它沒有逗號運算子的屬性。
上面的 printf()
呼叫包含逗號運算子和分隔符。
printf("%i\n", (x *= 2, y)); /* Outputs "42". */
/* ^ ^ this is a comma operator */
/* this is a separator */
逗號運算子通常用於初始化部分以及 for
迴圈的更新部分。例如:
for(k = 1; k < 10; printf("\%d\\n", k), k += 2); /*outputs the odd numbers below 9/*
/* outputs sum to first 9 natural numbers */
for(sumk = 1, k = 1; k < 10; k++, sumk += k)
printf("\%5d\%5d\\n", k, sumk);