顺序计算运算符

顺序计算运算符,也称为 “逗号运算符,”从左至右按顺序计算它的两个操作数。

语法

  • 表达式:
    赋值表达式

    表达式 赋值表达式

顺序计算运算符左侧的操作数会计算为 void 表达式。 操作的结果的值和类型正确的操作数具有相同。 每个操作数可以是任何类型。 顺序计算运算符不执行在其操作数之间的类型转换,因此,它不提供左值。 具有顺序在第一个操作数以后,这意味着从左侧操作数计算的任何副作用在开始正确的操作数计算之前完成。 请参见 序列点 有关更多信息。

顺序计算运算符仅在一个表达式允许的上下文通常用于计算两个或多个表达式。

逗号可以从上下文中用作分隔符。 但是,您必须小心不混淆使用该英文逗号作为分隔符与其用作运算符;这两种用法完全不同。

示例

此示例声明顺序计算运算符:

for ( i = j = 1; i + j < 20; i += i, j-- );

在此示例中, 语句的第三个表达式的每个操作数是独立进行计算。 左侧操作数 i += i 首先计算,然后右操作数, j––,计算。

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。

请参见

参考

逗号运算符:,