Qu'est-ce que la priorité et l'association de l'opérateur C

Qu'est-ce que la priorité et l'association de l'opérateur C
Les opérateurs sont couramment utilisés pour effectuer diverses opérations arithmétiques et logiques en C. Le langage de programmation C suit un ordre spécifique appelé avantage de l'opérateur et association Pour déterminer l'ordre des opérations pendant l'exécution. Les règles de avantage de l'opérateur et association Aide dans la rédaction du code sans erreur et augmenter la lisibilité du code.

Cet article fournit un tutoriel complet pour vous aider à apprendre l'association et la priorité de l'opérateur en C.

Précédence de l'opérateur en C

Avantage de l'opérateur décrit la séquence dans laquelle plusieurs opérateurs sont évalués lors de l'évaluation des expressions. Par exemple, si une expression a à la fois des opérateurs d'addition et de multiplication, dont on doit être évalué en premier? La réponse est simple, C suit certaines règles pour résoudre une telle ambiguïté, communément appelée avantage de l'opérateur. En c, avantage de l'opérateur est classé en 17 niveaux, allant des opérateurs unaires à l'opérateur conditionnel ternaire. La plupart des opérateurs d'occasion comme les opérateurs arithmétiques, les opérateurs relationnels, les opérateurs logiques et les opérateurs bit avantage de l'opérateur protocole.

Priorité Les règles dictent quels opérateurs ont une priorité plus élevée que les autres lors de l'évaluation des expressions. Plusieurs types d'opérateurs dans le langage de programmation C ont divers degrés de priorité. Par exemple, les opérateurs unaires ont une plus grande priorité que les opérateurs binaires. Ce qui suit est une liste d'opérateurs triés par ordre croissant de priorité:

Opérateur Signification de l'opérateur Association
()
[]
->
.
Appel fonctionnel

Référence de l'élément de tableau

Sélection des membres indirects

Sélection directe des membres

De gauche à droite
!
~
+
-
++
-
&
*
taille de
(taper)
Négation logique

Complément bitwise (1)

Unary plus

Unary moins

Incrément

Diminution

Dereference (adresse)

Référence du pointeur

Renvoie la taille d'un objet

TypeCast (conversion)

De droite à gauche
*
/ /
%
Multiplier

Diviser

Reste

De gauche à droite
+
-
Binary Plus (ajout)

Binaire moins (soustraction)

De gauche à droite
<<
>>
Décalage à gauche

Changement de droite

De gauche à droite
<
<=
>
> =
Moins que

Moins ou égal

Plus grand que

Meilleur que ou égal

De gauche à droite
==
!=
Égal à

Pas égal à

De gauche à droite
& Dans le monde et De gauche à droite
^ Exclusivité De gauche à droite
| Bit ou De gauche à droite
&& Logique et De gauche à droite
|| Logique ou De gauche à droite
?: Opérateur conditionnel De droite à gauche
=
* =
/ =
% =
+=
-=
& =
^ =
| =
<<=
>> =
Affectation simple

Affecter le produit

Affecter le quotient

Affecter le reste

Attribuer une somme

Assigner la différence

Attribuer un bit et

Affecter Bitwise XOR

Attribuer un bit ou

Affecter le changement de gauche

Affecter le shift droit

De droite à gauche
, Séparateur des expressions De gauche à droite

Ces règles guident le compilateur sur la façon d'évaluer les expressions avec plusieurs opérateurs dans la même expression. L'opérateur de multiplication, par exemple, a une plus grande priorité que l'opérateur d'addition dans l'équation A + B * C, conformément à la priorité règles. Par conséquent, le compilateur évaluera d'abord l'expression b * c avant d'ajouter un au résultat.

Regardons un exemple de avantage de l'opérateur via le code.

#inclure
int main()
int a = 43, b = 11, c = 16, d = 31;
Int result = ++ a * b-- + c / --d;
printf ("a =% d \ n", a);
printf ("b =% d \ n", b);
printf ("c =% d \ n", c);
printf ("d =% d \ n", d);
printf ("result =% d \ n", résultat);
retour 0;

Les quatre variables A, B, C et D, sont déclarées dans le code ci-dessus, et leurs valeurs initiales sont 43, 11, 16 et 31 en conséquence. Ensuite, il applique une variété d'opérateurs d'arithmétiques et d'affectations à ces variables dans une expression. L'expression augmente la valeur de A en utilisant l'opérateur de pré-incrément ++ A, multiplie le résultat par l'opérateur post-décension B. (en utilisant l'opérateur de pré-recrutement -D). Le résultat variable est ensuite utilisé pour maintenir le résultat total de cette expression.

Sortir

Associativité en c

Association fait référence à l'ordre dans lequel les opérateurs sont évalués lors d'une expression avec la même priorité. Gauche à droite et droit à gauche association sont les deux formes d'associativité en c. Si deux opérateurs ont le même priorité, Ils sont évalués de gauche à droite selon le concept de gauche à droite association. Néanmoins, si la même priorité est observée, les opérateurs sont évalués de droite à gauche selon la droite à gauche association.

Par exemple, l'opérateur d'incrément ++ a le droit à gauche association, ce qui signifie l'augmentation opérateur est évalué après la variable. Alors que le logique et opérateur a une gauche à droite association, ce qui signifie que l'opérateur est évalué de gauche à droite.

#inclure
int main()
int a = 6, b = 3, c = 2;
INT Result = a * b / c;
printf ("result =% d \ n", résultat);
retour 0;

Les trois variables A, B et C sont déclarées dans ce code, et ils sont initialisés à 6, 3 et 2 respectivement. Ensuite, il applique des opérations de multiplication et de division à ces variables dans une expression. La multiplication et la division sont classées de gauche à droite en C en fonction de leur association Comme ils ont le même niveau de priorité. Cela indique que l'opération de division passe en premier, suivie de l'opération de multiplication lors de l'évaluation de l'expression, a * b / c.

Sortir

Conclusion

Avantage de l'opérateur et association sont des concepts cruciaux dans la programmation C qui aident à déterminer l'ordre d'exécution des expressions. Les opérateurs avec le plus haut priorité le niveau est évalué en premier et association Les règles aident à déterminer l'ordre lorsque plusieurs opérateurs avec la même priorité sont utilisés. Compréhension avantage de l'opérateur et association est essentiel lors de la conception de programmes complexes, et il aide à produire un code plus propre et plus efficace avec moins d'erreurs.