Priorité des opérateurs en langage C : 1. Les opérateurs de premier niveau ont des identifiants et des constantes ; 2. Les opérateurs de deuxième niveau incluent des opérations d'indice de tableau et des appels de fonction ; 3. Les opérateurs de troisième niveau ont des préfixes d'incrémentation et de décrémentation de préfixe ; ; 4. L'opérateur de quatrième niveau force l'expression à devenir un type spécifié ; 5. L'opérateur de cinquième niveau est l'opérateur de multiplication, etc.
Par exemple, x = 7 + 3 * 2 ; Ici, x reçoit la valeur 13 au lieu de 20 car la priorité de l'opérateur * est supérieure à + , donc il multiplie d'abord 3*2 puis l'ajoute à 7.
Ici, l'opérateur de priorité la plus élevée apparaît en haut du tableau et l'opérateur de priorité la plus basse apparaît en bas du tableau. Dans une expression, les opérateurs ayant une priorité plus élevée sont évalués en premier.
Opérateurs de premier niveau : les identifiants, les constantes, les littéraux de chaîne, les expressions de promotion prioritaire sont exécutés en premier.
Opérateurs secondaires : opération d'indice de tableau (expression), appel de fonction (liste d'expressions d'arguments), accès aux membres (identifiant, -> identifiant), incrément de suffixe (i++), suffixe décrémentation (i--), initialisation composite (initializer-list).
Opérateurs de troisième niveau : incrément de préfixe (++i), décrémentation de préfixe (--i), expression de transformation unaire (obtenir l'adresse &, retirer *, signe positif +, signe négatif -, inversion de bits ~ non logique !), trouvez la longueur du type (taille de l'expression unaire).
Opérateur de quatrième niveau : force l'expression à devenir le type spécifié par type-name (type-name) cast-expression.
Opérateurs à cinq niveaux : opérateur de multiplication " * ".
Opérateurs à six niveaux : opérateur d'addition " + ".
Opérateurs à sept niveaux : << opérateur de décalage à gauche >>
Opérateurs à huit niveaux : <, <=, >, >= opérateurs relationnels.
Opérateurs à neuf niveaux : " == " est égal à l'opérateur ; " != " n'est pas égal à l'opérateur.
Opérateur de dixième niveau : "&" opérateur ET au niveau du bit.
Opérateur de onzième niveau : "∧" opérateur XOR au niveau du bit.
Opérateurs à douze niveaux : " | " opérateur OU au niveau du bit.
Opérateur de treizième niveau : "&&" opérateur ET logique.
Opérateur de quatorzième niveau : "||" Opérateur OU logique.
Opérateurs de quinzième niveau : Opérateur conditionnel.
La priorité des opérateurs en langage C est la suivante (de haut en bas) :
运算符 | 关联性 |
() [] -> . ++ - - | 左到右 |
+ - ! ~ ++ - - (type)* & sizeof | 右到左 |
* / % | 左到右 |
+ - | 左到右 |
<< >> | 左到右 |
< <= > >= | 左到右 |
== != | 左到右 |
& | 左到右 |
^ | 左到右 |
| | 左到右 |
&& | 左到右 |
|| | 左到右 |
?: | 右到左 |
= += -= *= /= %=>>= <<= &= ^= |= | 右到左 |
, | 左到右 |
Exemple de priorité des opérateurs en C :
#include <stdio.h>main() { int a = 20; int b = 10; int c = 15; int d = 5; int e; e = (a + b) * c / d; // ( 30 * 15 ) / 5 printf("Value of (a + b) * c / d is : %d\n", e ); e = ((a + b) * c) / d; // (30 * 15 ) / 5 printf("Value of ((a + b) * c) / d is : %d\n" , e ); e = (a + b) * (c / d); // (30) * (15/5) printf("Value of (a + b) * (c / d) is : %d\n", e ); e = a + (b * c) / d; // 20 + (150/5) printf("Value of a + (b * c) / d is : %d\n" , e ); return 0;}
Sortie :
Value of (a + b) * c / d is : 90 Value of ((a + b) * c) / d is : 90 Value of (a + b) * (c / d) is : 90 Value of a + (b * c) / d is : 50
Recommandations associées : "Tutoriel C"
Cet article est une introduction à la priorité des opérateurs en langage C. J'espère qu'il sera utile aux amis dans le besoin !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!