逗号运算符:,

分组两个语句中允许一个人预期的位置。

expression , expression

备注

逗号运算符具有从左向右的关联性。 逗号分隔的两个计算表达式的从左向右。 左侧操作数始终计算,因此,任何副作用完成,在正确的操作数计算之前。

逗号可以从上下文中用作分隔符,如参数列表的函数。 不要混淆使用该英文逗号作为分隔符与其用作运算符;这两种用法完全不同。

考虑表达式

e1e2

该表达式的类型和值为 e2 的类型和值; e1 的 放弃结果计算。 ,如果正确的操作数是左值,则结果是左值。

其中一个逗号通常用作分隔符 (如给函数或聚合初始值设定项的实参),逗号运算符,并且必须括在括号中其操作数。 例如:

func_one( x, y + 2, z );
func_two( (x--, y + 2), z );

在函数调用添加到上面 func_one ,三个参数,以逗号分隔,可以: x、 y + 2和 z。 在函数调用添加到 func_two,圆括号强制编译器解释第一个逗号作为顺序计算运算符。 此函数调用传递两个参数为 func_two。 第一个参数是按顺序计算操作 (x--, y + 2)的结果,的表达式 y + 2的值和类型;第二个参数是 z。

示例

// cpp_comma_operator.cpp
#include <stdio.h>
int main () {
   int i = 10, b = 20, c= 30;
   i = b, c;
   printf("%i\n", i);

   i = (b, c);
   printf("%i\n", i);
}
  

请参见

参考

与二元运算符的表达式

C++运算符

运算符优先级和结合性

概念

顺序计算运算符