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

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

Lorsque nous évaluons toute expression qui implique l'utilisation de différents opérateurs, nous sommes obligés de résoudre l'expression de calculer ses valeurs en fonction de la priorité de l'opérateur. La priorité est le terme pour attribuer une priorité ou un poids à une valeur / terme, donc la priorité de l'opérateur attribue la priorité aux opérateurs dans une expression. Pour comprendre cela, supposons toute expression, e.g., 8 * 3 + 2, et la réponse à cette expression pourrait entraîner deux valeurs différentes, «26» et «40», respectivement. Cependant, nous choisirons le résultat de l'expression comme «26», car l'opérateur de multiplication «*» a plus de priorité de l'opérateur par rapport à l'opérateur d'addition «+», par conséquent, l'expression calculera d'abord la multiplication entre 8 et 3 et le Le résultat sera ensuite ajouté avec le 2. De nombreux opérateurs du langage de programmation C ont plus de priorité sur les autres opérateurs.

Procédure

La priorité de l'opérateur est un concept important dans les méthodes numériques pour résoudre une expression. Nous avons besoin de cette priorité pour résoudre l'expression. Si nous ne suivons aucune règle, nous ne saurons d'abord quel opérateur résoudre d'abord, et nous pouvons obtenir une réponse différente à chaque fois. Pour éviter cette confusion, nous avons standardisé la priorité aux opérateurs qui indiquent quel opérateur nous devons évaluer d'abord dans n'importe quelle expression. Nous résoudrons divers exemples avec différents opérateurs dans cet article.

Exemple 01

Dans l'exemple, nous exécuterons un programme dans le compilateur Visual Studio C qui calculera l'expression numérique impliquant certains opérateurs numériques. Si nous prenons un exemple d'expression comme:

6 * 5-4 + 2

Sans la priorité de l'opérateur, nous avons deux façons de résoudre cette expression. Une façon consiste à résoudre cette expression en évaluant les opérateurs de gauche à droite. Si nous le faisons, nous obtiendrons la réponse «28». Une autre façon de résoudre l'expression est que si nous commençons à évaluer les opérateurs de droite à gauche, nous calculerons la réponse de cette expression comme «26». Les réponses que nous avons sont différentes les unes des autres, et elles sont également suspectes. Comment choisissez-nous quelle réponse est correcte si ces réponses ne sont pas erronées? Résolvons cet exemple dans le compilateur C en développant un programme pour cette opération. Le Visual Studio C a la priorité par défaut de l'opérateur pour de telles expressions.

Pour implémenter cela, nous devons créer un projet, puis déclarer la fonction principale comme «main ()» avec le type de retour «entier». Dans la fonction principale, initialisez un entier avec un nom de variable «A» et attribuez l'expression numérique précédente. Affichez ensuite le résultat de cette expression dans la variable en appelant la méthode printf (), qui prendra le spécificateur de format pour la variable entière «A» comme «% i» et également le nom de la variable «A» dans ses arguments. Voici le programme le plus court que vous pouvez exécuter:

#inclure
int main()

int a = 6 * 5 - 4 + 2;
printf ("% i", a);
retour 0;

La sortie de l'expression «A» sera ensuite calculée par ce programme comme le «28».

Exemple 02

Pour en savoir plus sur la priorité de l'opérateur, nous résoudrons un exemple de l'expression impliquant les opérateurs arithmétiques et les opérateurs de support et apprendre comment le langage de programmation C donne la priorité à plusieurs types d'opérateurs. L'expression sur laquelle nous allons travailler dans cet exemple est la suivante:

((3 * 8) +2) -2

L'expression implique les deux opérateurs parentaux et l'opérateur arithmétique «+». Pour vérifier comment le compilateur de C résoudra cette expression, créez un nouveau projet et déclarez une fonction nommée «Main» avec entier «int» comme type de retour. Dans cette fonction, initialisez une variable «x» avec un entier de type de données. À cette variable, attribuez l'expression numérique, e.g., «Int x = ((3 * 8) +2) -2», et affichez la variable dans la sortie.

#inclure
int main()

int x = ((3 * 8) + 2) - 2;
printf ("% i", x);
retour 0;

La sortie de la variable «x» déclarée dans l'exemple précédent serait la valeur numérique «24». Nous avons cette sortie car le langage de programmation C précède l'opérateur de parenthèses par rapport à l'opérateur arithmétique «+». Ainsi, le premier opérateur évalué dans l'expression était l'opérateur de parenthèses, qui impliquait la multiplication des deux valeurs, 3 et 8, qui ont donné la valeur 24. Ensuite, le compilateur a de nouveau résolu le deuxième opérateur de parenthèses, qui a ajouté la valeur résultante de la première parenthèse avec une valeur numérique 2. La réponse à la deuxième parenthèse est «26». Puis vint le tour de la soustraction et «2» a été soustrait de 26, ce qui a abouti à la réponse de l'expression comme 24.

Exemple 03

Pour le troisième exemple, nous résoudrons une expression impliquant les opérateurs qui sont soit les mêmes, soit la même priorité. Pour un tel cas, mettons en œuvre un exemple où nous déclarerons les trois variables x, y et z, tous ayant le même type de données qu'un entier avec les valeurs initialisées que 30, 20 et 10. Nous voulons comparer les trois valeurs comme x> y> z. Si la condition (x> y> z) devient vraie, la sortie imprimera «correctement». Sinon, «faux». Cet exemple est mis en œuvre de la manière suivante:

#inclure
int main()

int x = 30;
int y = 20;
int z = 10;
if (x> y> z)
printf ("correct");
autre
printf ("false");
retour 0;

D'après le code précédent, nous pouvons voir que l'expression n'a que des opérateurs de comparaison. Dans le programme C, lorsque le même type d'opérateur existe dans l'expression, nous calculons simplement l'expression en évaluant l'opérateur de gauche à droite. C'est la raison pour laquelle la sortie a affiché le «correct» de l'expression. Si nous passons de gauche à droite et comparons le (x> y)> z, alors ce serait une déclaration correcte pour les valeurs x = 30, y = 20 = et z = 10.

Conclusion

La priorité des opérateurs est la règle fondamentale de l'attribution des priorités aux opérateurs tout en traitant des expressions numériques dans les programmes écrits en C. Cet article met en évidence la priorité des opérateurs sur les mêmes et différents opérateurs à des fins d'évaluation. Nous avons mis en œuvre trois exemples différents avec trois cas différents impliquant la priorité de l'opérateur.