C Priorité et associativité des opérateurs: définition et exemples

Dans ce didacticiel, vous découvrirez la priorité et l'associativité des opérateurs à l'aide d'exemples.

Préséance des opérateurs

La priorité des opérateurs détermine quel opérateur est exécuté en premier s'il y a plusieurs opérateurs dans une expression.

Analysons un exemple:

 int x = 5 - 17* 6;

En C, la priorité de *est supérieure à -et =. Par conséquent, 17 * 6est évalué en premier. Ensuite, l'expression impliquant -est évaluée comme la priorité de -est supérieure à celle de =.

Voici un tableau des priorités des opérateurs du plus haut au plus bas. La propriété d' associativité sera discutée prochainement.

Table de préséance et d'associativité des opérateurs

Opérateur Signification de l'opérateur Associativité
()
()
->
.
Appel fonctionnel
Référence d'élément de tableau
Sélection indirecte de membres Sélection
directe de membres
De gauche à droite
!
~
+
-
++
-
&
*
sizeof
(type)

Négation logique Complément bit à bit (1)
Unaire plus
Unaire moins
Incrément
Décrément
Déréférence (Adresse)
Référence du pointeur
Renvoie la taille d'un objet
Typecast (conversion)
De droite à gauche
*
/
%
Multiplier le reste de
division
De gauche à droite
+
-
Binaire plus (addition)
Binaire moins (soustraction)
De gauche à droite
<<
>>
Décalage à gauche Décalage à
droite
De gauche à droite
<
<=
>
> =
Inférieur à
Inférieur ou égal
Supérieur à
Supérieur ou égal
De gauche à droite
==
! =
Égal à
Non égal à
De gauche à droite
& ET au niveau du bit De gauche à droite
^ OU exclusif au niveau du bit De gauche à droite
| OU au niveau du bit De gauche à droite
&& ET logique De gauche à droite
|| OU logique De gauche à droite
?: Opérateur conditionnel De droite à gauche
=
* =
/ =
% =
+ =
- =
& =
=
| =
<< =
>> =
Affectation simple
Affecter le produit
Affecter le quotient
Affecter le reste
Affecter la somme
Affecter la différence
Affecter au bit ET
Affecter au bit XOR
Affecter au bit OU
Affecter le décalage à gauche
Affecter le décalage à droite
De droite à gauche
, Séparateur d'expressions De gauche à droite

Associativité des opérateurs

L'associativité des opérateurs détermine la direction dans laquelle une expression est évaluée. Par exemple,

 b = a;

Ici, la valeur de a est affectée à b, et non l'inverse. C'est parce que l'associativité de l' =opérateur est de droite à gauche.

De plus, si deux opérateurs de même priorité (priorité) sont présents, l'associativité détermine la direction dans laquelle ils s'exécutent.

Analysons un exemple:

 1 == 2! = 3

Ici, les opérateurs ==et !=ont la même priorité. Et, leur associativité est de gauche à droite. Par conséquent, 1 == 2est exécuté en premier.

L'expression ci-dessus équivaut à:

 (1 == 2)! = 3

Remarque: Si une instruction a plusieurs opérateurs, vous pouvez utiliser des parenthèses ()pour rendre le code plus lisible.

Articles intéressants...