Compartir a través de


Operador de Sequential-Evaluation

El operador de evaluación secuencial, también denominado "operador de coma", evalúa sus dos operandos secuencialmente de izquierda a derecha.

Sintaxis

expression:
assignment-expression
expression , assignment-expression

El operando izquierdo del operador de evaluación secuencial (,) se evalúa como una void expresión. El resultado de la operación tiene el mismo valor y tipo que el operando derecho. Cada operando puede ser de cualquier tipo. El operador de evaluación secuencial no realiza conversiones de tipos entre sus operandos y no produce un valor L. Hay un punto de secuencia después del primer operando, lo que significa que todos los efectos secundarios de la evaluación del operando izquierdo se completan antes de comenzar la evaluación del operando derecho. Para obtener más información, vea Puntos de secuencia.

El operador de evaluación secuencial se usa normalmente para evaluar dos o más expresiones en contextos donde solo se permite una expresión.

Las comas se pueden usar como separadores en algunos contextos. Sin embargo, debe tener cuidado de no confundir el uso de la coma como separador con su uso como operador; los dos usos son distintos.

Ejemplo

En este ejemplo se muestra el operador de evaluación secuencial:

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

En este ejemplo, cada operando de la tercera expresión de la for instrucción se evalúa de forma independiente. El operando i += i izquierdo se evalúa primero; a continuación, se evalúa el operando derecho, j--, .

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

En la llamada de función a func_one, se pasan tres argumentos, separados por comas, : x, y + 2y z. En la llamada de función a func_two, los paréntesis obligan al compilador a interpretar la primera coma como operador de evaluación secuencial. Esta llamada de función pasa dos argumentos a func_two. El primer argumento es el resultado de la operación (x--, y + 2)de evaluación secuencial , que tiene el valor y el tipo de la expresión y + 2; el segundo argumento es z.

Consulte también

Operador de comas: ,