Priorités et associativité des opérateurs
Chaque opérateur de l'ensemble des opérateurs pris en charge par l'évaluateur d'expression se caractérise par une priorité dans la hiérarchie des priorités et par un sens d'évaluation. Le sens de l'évaluation d'un opérateur repose sur l'associativité des opérateurs. Les opérateurs dont le degré de priorité est le plus élevé sont évalués avant les opérateurs de priorité moindre. Si une expression complexe comporte plusieurs opérateurs, l'ordre de priorité détermine l'ordre d'exécution des opérations. Cet ordre peut affecter considérablement la valeur résultante. Certains opérateurs ont une priorité identique. Si une expression contient plusieurs opérateurs de priorité identique, ceux-ci sont évalués dans un certain sens, de la gauche vers la droite ou de la droite vers la gauche.
Le tableau suivant décrit les priorités des opérateurs, de la plus élevée à la moins élevée. Les opérateurs de même niveau ont une priorité identique.
Symbole d'opérateur |
Type d'opération |
Associativité |
---|---|---|
( ) |
Expression |
De gauche à droite |
–, !, ~ |
Unaire |
De droite à gauche |
Casts |
Unaire |
De droite à gauche |
*, / ,% |
Multiplication |
De gauche à droite |
+, – |
Addition |
De gauche à droite |
<, >, <=, >= |
Relationnel |
De gauche à droite |
==, != |
Égalité |
De gauche à droite |
& |
ET au niveau du bit |
De gauche à droite |
^ |
OU exclusif au niveau du bit |
De gauche à droite |
| |
Opération OR inclusive au niveau du bit |
De gauche à droite |
&& |
ET logique |
De gauche à droite |
|| |
OU logique |
De gauche à droite |
? : |
Expression conditionnelle |
De droite à gauche |