Opérateur de Séquentiel-Évaluation
L'opérateur de séquentiel-évaluation, également appelé « opérateur virgule, » correspond ses deux opérandes séquentiellement de gauche à droite.
Syntaxe
expression:
devoir-expressiondevoir-expression deServeur IIS local d'expression
L'opérande gauche de l'opérateur de séquentiel-évaluation est évalué comme une expression d' void .Le résultat de l'opération a la même valeur et type que l'opérande de droite.Chaque opérande peut être de tout type.L'opérateur de séquentiel-évaluation n'exécute pas les conversions de type entre ses opérandes, et elle ne cède pas une l-value.Il existe un point de séquence après le premier opérande, ce qui signifie que tous les effets secondaires de l'évaluation de l'opérande gauche sont remplis avant de démarrer l'évaluation de l'opérande de droite.Consultez points de séquence pour plus d'informations.
L'opérateur de séquentiel-évaluation est généralement utilisé pour évaluer deux expressions ou plus dans les contextes où est autorisé uniquement une expression.
Des virgules peuvent être utilisés comme séparateurs dans certains contextes.Toutefois, vous devez faire attention à ne pas confondre l'utilisation de la virgule comme séparateur avec son utilisation comme opérateur ; les deux utilisations sont complètement différentes.
Exemple
Cet exemple illustre l'opérateur de séquentiel-évaluation :
for ( i = j = 1; i + j < 20; i += i, j-- );
dans cet exemple, chaque opérande expression de l'instruction de pour de la troisième est évalué indépendamment.L'opérande de gauche i += i est évalué en premier ; puis l'opérande de droite, j––, est évalué.
func_one( x, y + 2, z );
func_two( (x--, y + 2), z );
dans l'appel de fonction à func_one, trois arguments, séparés par des virgules, sont passés : x, y + 2, et z.Dans l'appel de fonction à func_two, les parenthèses forcent le compilateur pour interpréter la première virgule comme opérateur de séquentiel-évaluation.cet appel de fonction passe deux arguments à func_two.le premier argument est le résultat de l'opération (x--, y + 2)de séquentiel-évaluation, qui a la valeur et le type de l'expression y + 2; le deuxième argument est z.