C 语言的逗号运算符
逗号运算符 comma operator
逗号运算符最常用在 for 循环的循环头中.
程序示例:
#include<stdio.h>
#define FIRST_OZ 46
#define NEXT_OZ 20int main(void)
{int ounces;float cost;printf("ounces cost\n");for (ounces = 1, cost = FIRST_OZ; ounces <= 16; ounces++, cost += NEXT_OZ){printf("%3d $%5.2f\n", ounces, cost);}return 0;
}
结果:
ounces cost1 $46.002 $66.003 $86.004 $106.005 $126.006 $146.007 $166.008 $186.009 $206.0010 $226.0011 $246.0012 $266.0013 $286.0014 $306.0015 $326.0016 $346.00
逗号运算符是一个序列点。
整个逗号表达式的值是右侧项的值.
例如下面这条语句:
x = (y = 3, (z = ++y + 2) + 5);
先将 3 赋值给 y, 再递增 y 得到 y 等于 4, 再加 2, 得到 6, 赋值给 z, 再加 5 得到 11, 最终将 11 赋值给 x.
下面这条语句:
x = 7, 10;
被视为一个逗号表达式语句, 逗号左侧是一个赋值表达式, x 的值为 7. 逗号右侧是 10.
这和下面这两条语句等价:
x = 7;
10;
任何表达式后面加上分号就得到了一个语句, 因此 10; 也是一个语句, 但是什么也不做.
下面的语句:
x = (100, 200);
是将 200 赋值给 x.
逗号不一定都是逗号运算符,也可能是分隔符。
下面的语句中,
int a = 10, b = 9;
printf("a = %d b = %d\n", a, b);
逗号都是分隔符。