Tutoriel de programmation Linux C Partie 11 – Opérateurs arithmétiques, relationnels et logiques

Jusqu’à présent, dans cette série de tutoriels de programmation C, nous avons abordé des notions de base comme les fonctions, les tableaux, les variables, etc. Pour continuer sur cette lancée, nous allons aborder dans ce tutoriel un autre concept de base : les opérateurs.

En tant que débutant en langage de programmation C, tu auras principalement affaire à trois types d’opérateurs : arithmétiques, relationnels et logiques. Commençons par les opérateurs arithmétiques.

Il existe essentiellement 5 types d’opérateurs arithmétiques en C : +, -, *, / et %. Alors que +, – et / sont auto-explicatifs, * fait référence à la multiplication et % est l’opérateur de modulation. Au cas où tu ne le saurais pas, l’opérateur % te donne un reste. Par exemple :

a % b

Ici, l’opérateur % s’assure que tu obtiens la valeur du reste lorsque ‘a’ est divisé par ‘b’. Cela signifie que le reste peut être zéro dans les cas où ‘a’ est complètement divisible par ‘b’. Voici un petit exemple qui devrait te permettre de mieux comprendre ces opérateurs :

#include <stdio.h>

int main()
{
int a = 10, b = 3, c =0;
c = a + b;
printf("%d\n", c);

c = a - b;
printf("%d\n", c);

c = a*b;
printf("%d\n", c);

c = a/b;
printf("%d\n", c);

c = a%b;
printf("%d\n", c);

return 0;
}

Voici le résultat de ce programme :

13 
7
30
3
1

Il est utile de mentionner ici que lorsque tu traites des flottants et des doubles, tu ne dois pas utiliser l’opérateur %. De plus, les opérateurs + et – que nous avons utilisés ici sont des opérateurs binaires, ce qui signifie qu’ils nécessitent deux opérandes (par exemple, ‘a’ et ‘b’ dans notre cas). Il existe également des opérateurs + et – unaires, qui fonctionnent sur un seul opérande.

Voici un exemple de l’opérateur unaire – en action :

#include <stdio.h>

int main()
{
int a = 10, b = 3, c =0;
c = -a;
printf("c = %d", c);
}

Voici le résultat :

c = -10

Parmi tous les opérateurs discutés jusqu’à présent, en termes de précédence, les + et – unaires se partagent la première place, suivis par *, / et %, qui sont à leur tour suivis par les + et – binaires.

Sache qu’il existe aussi d’autres opérateurs unaires, dont certains ont déjà été abordés indirectement dans nos précédents tutoriels. Voici la liste : ++, –, !, &, et sizeof.

Nous avons déjà discuté des opérateurs d’incrémentation et de décrémentation ++ et — (sous leurs formes préfixe et postfixe). ! est un opérateur NON qui annule tout ce sur quoi il est appliqué. Par exemple, si le résultat d’une condition est vrai, l’application de ! le convertira en faux, et vice versa.

Plus loin, & est utilisé pour récupérer l’adresse d’une variable (comme on l’a déjà vu dans le cas des arguments de la fonction scanf()), tandis que l’opérateur sizeof te donne la taille de l’opérande qui lui est passé. Le morceau de code suivant devrait te donner une meilleure idée de ces opérateurs :

#include <stdio.h>

int main()
{
int a = 10, b = 3, c =0, d =1, e=0, f=9;

printf("a = 10 and a++ = %d\n", a++);

printf("b = 3 and ++b = %d\n", ++b);

printf("c = 0 and c-- = %d\n", c--);

printf("d = 1 and --d = %d\n", --d);

if(!e)
{
printf("\n e is zero or FALSE and its address is: %u\n", &e);
printf("\n sizeof 'f' is: %u\n", sizeof(f));

}


return 0;

}

Et voici le résultat :

a = 10 and a++ = 10 
b = 3 and ++b = 4
c = 0 and c-- = 0
d = 1 and --d = 0

e is zero or FALSE and its address is: 856178696

sizeof 'f' is: 4

Poursuivons, jetons rapidement un coup d’œil aux opérateurs relationnels et logiques. Voici les opérateurs relationnels :

> >= < <= == !=

Voici comment ils peuvent être utilisés :

a > b
a >= b
a < b
a <= b
a == b
a != b

Dans l’ordre de leur apparition ci-dessus, ces opérateurs vérifient si ‘a’ est supérieur, supérieur ou égal à, inférieur, inférieur ou égal à, égal et non égal à ‘b’. Les quatre premiers opérateurs ont la même précédence, qui est supérieure à celle des deux derniers. Note que les deux derniers opérateurs sont aussi appelés opérateurs d’égalité.

Et enfin, venons-en aux opérateurs logiques. Il y en a essentiellement deux : && et ||. Ces deux opérateurs sont surtout utilisés pour évaluer des conditions ou des expressions. Par exemple :

if (cond1 && cond2)
{

}

if (expr1 && expr2)
{

}

if (cond1 || cond2)
{

}

if (expr1 || expr2)
{

}

Dans le cas des deux premières instructions if, l’exécution n’entrera dans le bloc que si les deux conditions sont vraies. Alors que dans le cas des deux dernières déclarations if, l’exécution entrera dans le bloc si l’une des conditions de l’expression est vraie.

N’oublie pas que les opérateurs relationnels ont une préséance inférieure à celle des opérateurs arithmétiques, et que celle des opérateurs logiques est inférieure à celle des opérateurs relationnels et d’égalité. Entre eux, && a une préséance plus élevée que ||.

Conclusion

Dans ce tutoriel, nous avons abordé les bases des opérateurs, leur fonctionnement et leur préséance. Nous te suggérons de créer quelques exemples de programmes C pour tester les concepts abordés ici. En cas de doute ou de question, fais-nous signe dans les commentaires ci-dessous.

Vous aimerez aussi...