Comprendre la priorité et l'associativité des opérateurs C :un guide clair
Priorité 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.
Prenons un exemple :
int x = 5 - 17* 6;
En C, la priorité de * est supérieur à - et = . Par conséquent, 17 * 6 est évalué en premier. Alors l'expression impliquant - est évalué comme la priorité de - est supérieur à celui de = .
Voici un tableau de priorité des opérateurs de plus en plus bas. La propriété d'associativité sera discuté sous peu.
Tableau de priorité et d'associativité des opérateurs
[]
->
.Appel fonctionnel
Référence d'élément de tableau
Sélection indirecte des membres
Sélection directe des membresDe gauche à droite !
~
+
-
++
--
&
*
taillede
(type)Négation logique
Complément au niveau du bit (1)
Unaire plus
Unaire moins
Incrément
Décrémenter
Déréférencement (adresse)
Référence du pointeur
Renvoie la taille d'un objet
Transtypage (conversion)De droite à gauche*
/
%Multiplier
Diviser
ResteDe gauche à droite+
-Binaire plus (Ajout)
Moins binaire (soustraction) De gauche à droite <<
>> Décalage à gauche
Maj droiteDe gauche à droite<
<=
>
>=Moins de
Inférieur ou égal
Plus grand que
Supérieur ou égalDe gauche à droite==
!=Égal à
Différent de Gauche à droite&Bitwise ANDLeft to right^Bitwise exclusive ORLeft to right|Bitwise ORLeft to right&&Logical ANDLeft to right||Logical ORLeft to right?:Conditional OperatorRight to left=
*=
/=
%=
+=
-=
&=
^=
|=
<<=
>>=Assignation simple
Attribuer un produit
Attribuer un quotient
Attribuer le reste
Attribuer une somme
Attribuer la différence
Attribuer ET au niveau du bit
Attribuer un XOR au niveau du bit
Attribuer un OU au niveau du bit
Attribuer le décalage à gauche
Attribuer le décalage droitDe droite à gauche,Séparateur d'expressionsDe 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, c’est la valeur de a qui est attribuée à b, et non l’inverse. C'est parce que l'associativité du = l'opérateur est de droite à gauche.
De plus, si deux opérateurs de même préséance (priorité) sont présents, l'associativité détermine la direction dans laquelle ils s'exécutent.
Prenons un exemple :
1 == 2 != 3
Ici, les opérateurs == et != ont la même priorité. Et leur associativité va de gauche à droite. Par conséquent, 1 == 2 est exécuté en premier.
L'expression ci-dessus est équivalente à :
(1 == 2) != 3
Remarque : Si une instruction comporte plusieurs opérateurs, vous pouvez utiliser des parenthèses () pour rendre le code plus lisible.
Table des matières
Langue C
- C# - Surcharge d'opérateur
- Langage de programmation C PDF :Tutoriel de base pour les débutants
- Classes de stockage en C :auto, externe, statique, classe de registre en C
- Pointeurs C++ avec exemples
- Interfaces en C++ (classes abstraites)
- Types de données C++
- Tableaux C++
- Entrée et sortie de base C#
- C# ce mot-clé