C 语言的逗号运算符

逗号运算符 comma operator

逗号运算符最常用在 for 循环的循环头中.

程序示例:

#include
#define FIRST_OZ 46
#define NEXT_OZ 20

int 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    cost
  1       $46.00
  2       $66.00
  3       $86.00
  4       $106.00
  5       $126.00
  6       $146.00
  7       $166.00
  8       $186.00
  9       $206.00
 10       $226.00
 11       $246.00
 12       $266.00
 13       $286.00
 14       $306.00
 15       $326.00
 16       $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);

逗号都是分隔符。

你可能感兴趣的:(C,语言,c语言)