priorité : gère l'ordre d'évaluation en l'abscence de parenthèses
Description:
Priorité et associativité permettent de regrouper opérandes et opérateurs quand une expression n'a pas assez de parenthèses, comme:
A && B || C ou A = B += C
Quand les opérateurs sont de priorités différentes, ici 5 pour l'opérateur && et 4 pour ||, l'évaluation commence avec l'opérateur de priorité la plus élevée, donc cette expression est évaluée comme:
( A && B ) || C .
Un tableau donnant la priorité et l'associativité de chaque opérateur est ci-dessous.
Quand les opérateurs ont la même priorité, ici 2 pour les opérateurs = et +=, l'évaluation commence:
- par la droite pour une associativité droite-gauche (notée <--) Ainsi:
- A = B += C est évaluée comme A = (B += C)
- par la gauche pour une associativité gauche-droite (notée -->) Ainsi:
- A - B - C est évaluée comme (A - B) - C
Voir aussi:
Exemple:
Associativité Priorité Opérateurs
--> 15 () [] -> .
<-- 14 ! ~ ++ -- - * (type)
--> 13 * / %
--> 12 + -
--> 11 << >>
--> 10 < <= > >=
--> 9 == !=
--> 8 &
--> 7 ^
--> 6 |
--> 5 &&
--> 4 ||
--> 3 ? :
<-- 2 = += -= *= /= %= >>= <<= &= ^= |=
--> 1 ,
! A || B
l'opérateur ! étant de priorité 14, plus élevée que celle
de l'opérateur ||, qui est 6, cette expression est évaluée:
( ! A ) || B
A - B + C
les opérateurs + et - ont même priorité, une associativité <--
(gauche-droite), donc l'expression est évaluée comme:
( A - B ) + C
ce qui correspond à l'interprétation arithmétique usuelle.
* A ++
les opérateurs * et ++ ont même priorité, une associativité <--
(droite-gauche), donc l'expression est évaluée comme:
* ( A ++ )