逗号运算符:,
分组两个语句中允许一个人预期的位置。
expression , expression
备注
逗号运算符具有从左向右的关联性。 逗号分隔的两个计算表达式的从左向右。 左侧操作数始终计算,因此,任何副作用完成,在正确的操作数计算之前。
逗号可以从上下文中用作分隔符,如参数列表的函数。 不要混淆使用该英文逗号作为分隔符与其用作运算符;这两种用法完全不同。
考虑表达式
e1 , e2
该表达式的类型和值为 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);
}