Langage C:Ordre de priorité et associativité

Un article de WikiTuto.

Jump to: navigation, search
opérateurs associativité description
() [] -> .->
! ~ ++ -- - + & * (cast)<- unaires (* pointeurs)
* / %->multiplicatifs
-->addition
>> <<->décalages
< <= > >=->relations d'ordre
= = !=->égalité
&->binaire
^->binaire
|->binaire
&&->logique
| |->logique
= += -= *= etc.<-affectation
,<-séquentiel

Dans ce tableau, les opérateurs sont classés par priorité décroissante (même priorité pour les opérateurs d'une même ligne). Les opérateurs les plus prioritaires seront évalués en premier. L'associativité définit l'ordre d'évaluation des opérandes. La plupart se font de gauche à droite ( 4/2/2 donne (4/2)/2 donc 1 (et pas 4/(2/2))).

Les seules exceptions sont :

  • les opérateurs unaires, écrits à gauche de l'opérateur. L'opérande est évalué puis l'opération est effectuée, le résultat est celui de l'opération; sauf dans le cas de l'incrémentation / décrémentation postfixée, où le résultat de l'expression est la valeur de l'argument avant l'opération.
  • L'affectation : on calcule l'opérande de droite, puis on l'affecte à celui de gauche. Le résultat est la valeur transférée.
  • La virgule : la valeur à droite est calculée avant celle à gauche (en particulier lors d'un appel de fonction). Exemple d'embrouille : fonction(tableau[i],++i);
  • Les opérateurs logiques et conditionnel évaluent toujours leur premier argument. Le second par contre n'est évalué que si c'est nécessaire. Donc a && i++ ne change pas toujours i, contrairement à a & i++ (mais qui écrirait de telles horreurs ?)


Voir aussi


Auteur :Patrick TRAU. Copyright : utilisation de ces documents libre pour tout usage personnel. Utilisation autorisée pour tout usage public non commercial, à condition de citer son auteur (Patrick TRAU, IPST, Université Louis Pasteur Strasbourg, email : Patrick.Trau (à) ipst-ulp.u-strasbg.fr ) et de me signaler tout usage intensif. Utilisation commerciale interdite sans accord écrit de ma part.

Boîte à outils
Annuaire gratuitCe site est listé dans la catégorie Informatique : Aide et astuces en informatique Annuaire