Maîtriser les opérateurs en programmation C : Guide complet
Opérateurs en programmation C
Dans ce tutoriel, vous apprendrez les différents opérateurs en programmation C avec l'aide d'exemples.
Vidéo : Opérateurs arithmétiques en C
Un opérateur est un symbole qui opère sur une valeur ou une variable. Par exemple : + est un opérateur pour effectuer une addition.
C a une large gamme d'opérateurs pour effectuer diverses opérations.
Opérateurs arithmétiques en C
Un opérateur arithmétique effectue des opérations mathématiques telles que l'addition, la soustraction, la multiplication, la division, etc. sur des valeurs numériques (constantes et variables).
| Opérateur | Signification de l'opérateur |
|---|---|
| + | addition ou plus unaire |
| - | soustraction ou moins unaire |
| * | multiplication |
| / | division |
| % | reste après division (modulo) |
Exemple 1 : Opérateurs arithmétiques
// Fonctionnement des opérateurs arithmétiques
#include <stdio.h>
int main() {
int a = 9, b = 4, c;
c = a + b;
printf("a+b = %d \n", c);
c = a - b;
printf("a-b = %d \n", c);
c = a * b;
printf("a*b = %d \n", c);
c = a / b;
printf("a/b = %d \n", c);
c = a % b;
printf("Reste quand a divisé par b = %d \n", c);
return 0;
}
Sortie
a+b = 13 a-b = 5 a*b = 36 a/b = 2 Reste quand a divisé par b=1
Les opérateurs +, - et * calculent l'addition, la soustraction et la multiplication respectivement comme vous pourriez vous y attendre.
Dans un calcul normal, 9/4 = 2.25. Cependant, la sortie est 2 dans le programme.
C'est parce que les deux variables a et b sont des entiers. Donc, la sortie est aussi un entier. Le compilateur néglige le terme après la virgule et affiche la réponse 2 au lieu de 2.25.
L'opérateur modulo % calcule le reste. Quand a=9 est divisé par b=4, le reste est 1. L'opérateur % ne peut être utilisé qu'avec des entiers.
Supposons a = 5.0, b = 2.0, c = 5 et d = 2. Alors en programmation C,
// Soit l'un des opérandes est un nombre à virgule flottante a/b = 2.5 a/d = 2.5 c/b = 2.5 // Les deux opérandes sont des entiers c/d = 2
Opérateurs d'incrémentation et de décrémentation en C
La programmation C a deux opérateurs : incrémentation ++ et décrémentation -- pour changer la valeur d'un opérande (constante ou variable) de 1.
L'incrémentation ++ augmente la valeur de 1 tandis que la décrémentation -- la diminue de 1. Ces deux opérateurs sont des opérateurs unaires, ce qui signifie qu'ils n'opèrent que sur un seul opérande.
Exemple 2 : Opérateurs d'incrémentation et de décrémentation
// Fonctionnement des opérateurs d'incrémentation et décrémentation
#include <stdio.h>
int main() {
int a = 10, b = 100;
float c = 10.5, d = 100.5;
printf("++a = %d \n", ++a);
printf("--b = %d \n", --b);
printf("++c = %f \n", ++c);
printf("--d = %f \n", --d);
return 0;
}
Sortie
++a = 11 --b = 99 ++c = 11.500000 --d = 99.500000
Ici, les opérateurs ++ et -- sont utilisés comme préfixes. Ces deux opérateurs peuvent aussi être utilisés comme postfixes comme a++ et a--. Visitez cette page pour en savoir plus sur le fonctionnement des opérateurs d'incrémentation et de décrémentation quand ils sont utilisés comme postfixes.
Opérateurs d'affectation en C
Un opérateur d'affectation est utilisé pour assigner une valeur à une variable. Le plus commun est =
| Opérateur | Exemple | Identique à |
|---|---|---|
| = | a = b | a = b |
| += | a += b | a = a+b |
| -= | a -= b | a = a-b |
| *= | a *= b | a = a*b |
| /= | a /= b | a = a/b |
| %= | a %= b | a = a%b |
Exemple 3 : Opérateurs d'affectation
// Fonctionnement des opérateurs d'affectation
#include <stdio.h>
int main() {
int a = 5, c;
c = a; // c est 5
printf("c = %d\n", c);
c += a; // c est 10
printf("c = %d\n", c);
c -= a; // c est 5
printf("c = %d\n", c);
c *= a; // c est 25
printf("c = %d\n", c);
c /= a; // c est 5
printf("c = %d\n", c);
c %= a; // c = 0
printf("c = %d\n", c);
return 0;
}
Sortie
c = 5 c = 10 c = 5 c = 25 c = 5 c = 0
Opérateurs relationnels en C
Un opérateur relationnel vérifie la relation entre deux opérandes. Si la relation est vraie, il retourne 1 ; si elle est fausse, il retourne 0.
Les opérateurs relationnels sont utilisés dans la prise de décision et les boucles.
| Opérateur | Signification | Exemple |
|---|---|---|
| == | Égal à | 5 == 3 évalue à 0 |
| > | Supérieur à | 5 > 3 évalue à 1 |
| < | Inférieur à | 5 < 3 évalue à 0 |
| != | Différent de | 5 != 3 évalue à 1 |
| >= | Supérieur ou égal à | 5 >= 3 évalue à 1 |
| <= | Inférieur ou égal à | 5 <= 3 évalue à 0 |
Exemple 4 : Opérateurs relationnels
// Fonctionnement des opérateurs relationnels
#include <stdio.h>
int main() {
int a = 5, b = 5, c = 10;
printf("%d == %d est %d \n", a, b, a == b);
printf("%d == %d est %d \n", a, c, a == c);
printf("%d > %d est %d \n", a, b, a > b);
printf("%d > %d est %d \n", a, c, a > c);
printf("%d < %d est %d \n", a, b, a < b);
printf("%d < %d est %d \n", a, c, a < c);
printf("%d != %d est %d \n", a, b, a != b);
printf("%d != %d est %d \n", a, c, a != c);
printf("%d >= %d est %d \n", a, b, a >= b);
printf("%d >= %d est %d \n", a, c, a >= c);
printf("%d <= %d est %d \n", a, b, a <= b);
printf("%d <= %d est %d \n", a, c, a <= c);
return 0;
}
Sortie
5 == 5 est 1 5 == 10 est 0 5 > 5 est 0 5 > 10 est 0 5 < 5 est 0 5 < 10 est 1 5 != 5 est 0 5 != 10 est 1 5 >= 5 est 1 5 >= 10 est 0 5 <= 5 est 1 5 <= 10 est 1
Opérateurs logiques en C
Une expression contenant un opérateur logique retourne soit 0 soit 1 selon que l'expression résulte vrai ou faux. Les opérateurs logiques sont couramment utilisés dans la prise de décision en programmation C.
| Opérateur | Signification | Exemple |
|---|---|---|
| && | ET logique. Vrai seulement si tous les opérandes sont vrais | Si c = 5 et d = 2 alors, expression ((c==5) && (d>5)) égale à 0. |
| || | OU logique. Vrai seulement si au moins un opérande est vrai | Si c = 5 et d = 2 alors, expression ((c==5) || (d>5)) égale à 1. |
| ! | NON logique. Vrai seulement si l'opérande est 0 | Si c = 5 alors, expression !(c==5) égale à 0. |
Exemple 5 : Opérateurs logiques
// Fonctionnement des opérateurs logiques
#include <stdio.h>
int main() {
int a = 5, b = 5, c = 10, resultat;
resultat = (a == b) && (c > b);
printf("(a == b) && (c > b) est %d \n", resultat);
resultat = (a == b) && (c < b);
printf("(a == b) && (c < b) est %d \n", resultat);
resultat = (a == b) || (c < b);
printf("(a == b) || (c < b) est %d \n", resultat);
resultat = (a != b) || (c < b);
printf("(a != b) || (c < b) est %d \n", resultat);
resultat = !(a != b);
printf("!(a != b) est %d \n", resultat);
resultat = !(a == b);
printf("!(a == b) est %d \n", resultat);
return 0;
}
Sortie
(a == b) && (c > b) est 1 (a == b) && (c < b) est 0 (a == b) || (c < b) est 1 (a != b) || (c < b) est 0 !(a != b) est 1 !(a == b) est 0
Explication du programme d'opérateurs logiques
(a == b) && (c > 5)évalue à 1 car les deux opérandes(a == b)et(c > b)sont 1 (vrai).(a == b) && (c < b)évalue à 0 car l'opérande(c < b)est 0 (faux).(a == b) || (c < b)évalue à 1 car(a = b)est 1 (vrai).(a != b) || (c < b)évalue à 0 car les deux opérandes(a != b)et(c < b)sont 0 (faux).!(a != b)évalue à 1 car l'opérande(a != b)est 0 (faux). Donc, !(a != b) est 1 (vrai).!(a == b)évalue à 0 car(a == b)est 1 (vrai). Donc,!(a == b)est 0 (faux).
Opérateurs bit à bit en C
Pendant le calcul, les opérations mathématiques comme l'addition, la soustraction, la multiplication, la division, etc. sont converties au niveau des bits ce qui rend le traitement plus rapide et économise l'énergie.
Les opérateurs bit à bit sont utilisés en programmation C pour effectuer des opérations au niveau des bits.
| Opérateurs | Signification des opérateurs |
|---|---|
| & | ET bit à bit |
| | | OU bit à bit |
| ^ | OU exclusif bit à bit |
| ~ | Complément bit à bit |
| << | Décalage vers la gauche |
| >> | Décalage vers la droite |
Visitez opérateur bit à bit en C pour en savoir plus.
Autres opérateurs
Opérateur virgule
Les opérateurs virgule sont utilisés pour lier des expressions liées ensemble. Par exemple :
int a, c = 5, d;
L'opérateur sizeof
Le sizeof est un opérateur unaire qui retourne la taille des données (constantes, variables, tableau, structure, etc).
Exemple 6 : Opérateur sizeof
#include <stdio.h>
int main() {
int a;
float b;
double c;
char d;
printf("Taille de int=%lu octets\n", sizeof(a));
printf("Taille de float=%lu octets\n", sizeof(b));
printf("Taille de double=%lu octets\n", sizeof(c));
printf("Taille de char=%lu octet\n", sizeof(d));
return 0;
}
Sortie
Taille de int = 4 octets Taille de float = 4 octets Taille de double = 8 octets Taille de char = 1 octet
D'autres opérateurs tels que l'opérateur ternaire ?:, l'opérateur de référence &, l'opérateur de déréférence * et l'opérateur de sélection de membre -> seront discutés dans de futurs tutoriels.
Langue C
- Fondamentaux de la programmation microprocesseur
- Opérateurs C# — Guide complet des opérateurs en C#
- Maîtriser les opérateurs bit à bit et de décalage en C# : Guide complet
- Maîtriser les espaces de noms en C# : Organisation, portée et bonnes pratiques
- Maîtriser les opérateurs C++ : Guide complet avec exemples pratiques
- Comment passer des tableaux aux fonctions en C++ : Guide pratique
- Quatre modèles éprouvés pour les fonctions définies par l'utilisateur en C
- Maîtriser les opérateurs Python : Guide complet
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques