Priorité et associativité des opérateurs

Pour déterminer la sémantique d'une expression il faut non seulement connaître la priorité des opérateurs mais également leur associativité. En effet, seule la connaissance de l'associativité de l'opérateur == permet de savoir si a == b == c signifie (a == b) == c ou si elle signifie a == (b == c).

Un opérateur a une associativité à droite quand :
a op b op c signifie a op ( b op c).

Un opérateur a une associativité à gauche quand :
a op b op c signifie (a op b) op c.

Nous donnons ci-dessous le tableau exhaustif des opérateurs avec leurs priorités et leurs associativité.

priorité Opérateur Associativité
16 () [] -> . ++ 1 -- 2 G
15 ! ~ ++ 3 -- 4 - 5 + 6 * 7 & 8 sizeof D
14 conversion D
13 * 9 / % G
12 + - G
11 << >> G
10 < <= > >= G
9 == != G
8 & 10 G
7 ^ G
6 | G
5 && G
4 || G
3 ?: D
2 = += -= *= /= %= >>= <<= &= ^= |= D
1 , G

1 postfixé
2 postfixé
3 préfixé
4 préfixé
5 unaire
6 unaire
7 indirection
8 adresse de
9 multiplication
10 et bit bit



Sous-sections
Matthieu Moy 2012-06-20