Programmation en C++ – Les opérateurs
Un opérateur est un symbole qui indique au compilateur d’effectuer des fonctions mathématiques ou logiques spécifiques. Le langage C++ intègre plusieurs opérateurs et fournit les types d’opérateurs suivants:
- Opérateurs arithmétiques
- Opérateurs relationnels
- Opérateurs logiques
- Opérateurs bit à bit
- Opérateurs d’affectation
- Autres opérateurs
Dans ce chapitre, nous allons voir le fonctionnement de chaque opérateur.
Opérateurs arithmétiques
Le tableau suivant présente tous les opérateurs arithmétiques supportés par le langage C++. Supposons que la variable A contenant la valeur 10 et que la variable B contenant la valeur 20.
Opérateur | Description | Exemple |
---|---|---|
+ | La somme | A + B = 30 |
− | La soustraction | A − B = 10 |
∗ | La multiplication | A ∗ B = 200 |
∕ | La division | B ∕ A = 2 |
% | Modulo c’est le reste d’une division entier. | B % A = 0 |
++ | Opérateur d’incrémentation qui consiste à ajouter 1 à une variable. | A++ = 11 |
— | Opérateur de décrémentation qui consiste à retirer 1 à une variable. | A– = 9 |
Exemple
Essayez l’exemple suivant pour comprendre tous les opérateurs arithmétiques disponibles dans C++
#include <iostream> using namespace std; main() { int a = 21; int b = 10; int c ; c = a + b; cout <<"Ligne 1 - La valeur de c est " << c <<endl; c = a - b; cout <<"Ligne 2 - La valeur de c est " << c <<endl; c = a * b; cout <<"Ligne 3 - La valeur de c est " << c <<endl; c = a / b; cout <<"Ligne 4 - La valeur de c est " << c <<endl; c = a % b; cout <<"Ligne 5 - La valeur de c est " << c <<endl; c = a++; cout <<"Ligne 6 - La valeur de c est " << c <<endl; c = a--; cout <<"Ligne 7 - La valeur de c est " << c <<endl; }
Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant
Ligne 1 - La valeur de c est 31 Ligne 2 - La valeur de c est 11 Ligne 3 - La valeur de c est 210 Ligne 4 - La valeur de c est 2 Ligne 5 - La valeur de c est 1 Ligne 6 - La valeur de c est 21 Ligne 7 - La valeur de c est 22
Opérateurs relationnels
Le tableau suivant montre tous les opérateurs relationnels supportés par C++. Supposons que la variable A contenant la valeur 10 et la variable B contenant la valeur 20 donc
Opérateur | Description | Exemple |
---|---|---|
== | Vérifie si les deux opérandes sont égales ou non. Si oui, alors la condition vraie. | (A == B) est faux. |
!= | Vérifie si les deux opérandes sont égales ou non. Si les valeurs ne sont pas égales, la condition est vraie. | (A != B) est vrai. |
> | Vérifie si la valeur de l’opérande gauche est supérieure à la valeur de l’opérande droit. Si oui, alors la condition devient vraie. | (A > B) est faux. |
< | Vérifie si la valeur de l’opérande gauche est inférieure à la valeur de l’opérande droit. Si oui, alors la condition devient vraie. | (A < B) est vrai. |
>= | Vérifie si la valeur de l’opérande gauche est supérieure ou égale à la valeur de l’opérande droit. Si oui, alors la condition devient vraie. | (A >= B) est faux. |
<= | Vérifie si la valeur de l’opérande gauche est inférieure ou égale à la valeur de l’opérande droit. Si oui, alors la condition devient vraie. | (A <= B) est vrai. |
Exemple
Essayez l’exemple suivant pour comprendre tous les opérateurs relationnels disponibles en C++
#include <iostream> using namespace std; main() { int A = 21; int B = 10; if( A == B ) { cout << "Ligne 1 - A est egale de B" <<endl; } else { cout << "Ligne 1 - A est different de B" <<endl; } if ( A < B ) { cout << "Ligne 2 - A est inferieur de B" <<endl; } else { cout << "Ligne 2 - A n est pas inferieur de B" <<endl; } if ( A > B ) { cout << "Ligne 3 - A est superieur de B" <<endl; } else { cout << "Ligne 3 - A est non superieur de B" <<endl; } /* On Change la valeur de A et B */ A = 5; B = 20; if ( A <= B ) { cout << "Ligne 4 - A est inferieur ou egal de B" <<endl; } if ( B >= A ) { cout << "Ligne 5 - B est superieur ou egal de A" <<endl; } }
Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant
Ligne 1 - A different de B Ligne 2 - A n est pas inferieur de B Ligne 3 - A est superieur de B Ligne 4 - A est inferieur ou egal de B Ligne 5 - B est superieur ou egal de A
Opérateurs logiques
Le tableau suivant montre tous les opérateurs logiques pris en charge par le langage C++. Supposons que la variable A contenant la valeur 1 et la variable B contenant la valeur 0.
Opérateur | Description | Exemple |
---|---|---|
&& | Opérateur logique AND. Si les deux opérandes ne sont pas égaux à zéro, la condition devient vraie. | (A && B) est faux. |
|| | Opérateur logique OR. Si l’un des deux opérandes est non nul, la condition devient vraie. | (A || B) est vrai. |
! | Opérateur logique NOT. Il est utilisé pour inverser l’état logique de son opérande. Si une condition est vraie, l’opérateur NOT le rendra faux. | !(A && B) est vrai. |
Exemple
Essayez l’exemple suivant pour comprendre tous les opérateurs logiques disponibles dans C++
#include <iostream> using namespace std; main() { int A = 5; int B = 20; if ( A && B ) { cout << "Line 1 - La condition est vraie" << endl; } if ( A || B ) { cout << "Line 2 - La condition est vraie" << endl; } /* On Change la valeur de a et b */ A = 0; B = 10; if ( A && B ) { cout << "Line 3 - La condition est vraie" << endl; } else { cout << "Line 3 - La condition n'est pas vraie" << endl; } if ( !(A && B) ) { cout << "Line 4 - La condition est vraie" << endl; } }
Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant
Ligne 1 - La condition est vraie Ligne 2 - La condition est vraie Ligne 3 - La condition n'est pas vraie Ligne 4 - La condition est vraie
Opérateurs bit à bit
L’opérateur bit à bit fonctionne sur les bits et exécute l’opération bit par bit. Les tables de vérité pour &, | , et ^ sont les suivantes
p | q | p & q | p | q | p ^ q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
Supposons A = 60 et B = 13 en format binaire, ils seront comme suit –
A = 0011 1100
B = 0000 1101
—————–
A & B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~ A = 1100 0011
Essayez l’exemple suivant pour comprendre tous les opérateurs bit à bit disponibles dans C++
#include <iostream> using namespace std; main() { unsigned int a = 60; /* 60 = 0011 1100 */ unsigned int b = 13; /* 13 = 0000 1101 */ int c = 0; c = a & b; /* 12 = 0000 1100 */ cout << "Ligne 1 - Valeur de c est " << c <<endl; c = a | b; /* 61 = 0011 1101 */ cout << "Ligne 2 - Valeur de c est " << c <<endl; c = a ^ b; /* 49 = 0011 0001 */ cout << "Ligne 3 - Valeur de c est " << c <<endl; c = ~a; /*-61 = 1100 0011 */ cout << "Ligne 4 - Valeur de c est " << c <<endl; c = a << 2; /* 240 = 1111 0000 */ cout << "Ligne 5 - Valeur de c est " << c <<endl; c = a >> 2; /* 15 = 0000 1111 */ cout << "Ligne 6 - Valeur de c est " << c <<endl; }
Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant
Ligne 1 - La valeur de c est 12 Ligne 2 - La valeur de c est 61 Ligne 3 - La valeur de c est 49 Ligne 4 - La valeur de c est -61 Ligne 5 - La valeur de c est 240 Ligne 6 - La valeur de c est 15
Opérateurs d’affectation
Le tableau suivant représente les opérateurs d’affectation pris en charge par le langage C++
Opérateur | Description | Exemple |
---|---|---|
= | Opérateur d’affectation simple. Affecte les valeurs des opérandes de droite à l’opérande de gauche | C = A + B assignera la valeur de A + B à C |
+= | Il ajoute l’opérande droit à l’opérande gauche et affecte le résultat à l’opérande gauche. | C += A est équivalent à C = C + A |
-= | Il soustrait l’opérande droit de l’opérande gauche et affecte le résultat à l’opérande gauche. | C -= A est équivalent à C = C – A |
*= | Il multiplie l’opérande droit par l’opérande gauche et attribue le résultat à l’opérande gauche. | C *= A est équivalent à C = C * A |
/= | Il divise l’opérande gauche par l’opérande droit et affecte le résultat à l’opérande gauche. | C /= A est équivalent à C = C / A |
%= | Il prend le modulo en utilisant deux opérandes et attribue le résultat à l’opérande gauche. | C %= A est équivalent à C = C % A |
<<= | Opérateur de décalage à gauche. | C <<= 2 est identique à C = C << 2 |
>>= | Opérateur de décalage à droite | C >>= 2 est identique à C = C >> 2 |
&= | Opérateur bit à bit. | C &= 2 est identique à C = C & 2 |
^= | Opérateur OU exclusif bit à bit. | C ^= 2 est identique à C = C ^ 2 |
|= | Opérateur OU inclusive bit à bit. | C |= 2 est identique à C = C | 2 |
Exemple
Essayez l’exemple suivant pour comprendre tous les opérateurs d’affectation disponibles en C++
#include <iostream> using namespace std; main() { int a = 21; int c ; c = a; cout << "Ligne 1 - Exemple de l operateur = , Value of c = " << c << endl; c += a; cout << "Ligne 2 - Exemple de l operateur +=, Valeur de c = " << c << endl; c -= a; cout << "Ligne 3 - Exemple de l operateur -=, Valeur de c = " << c << endl; c *= a; cout << "Ligne 4 - Exemple de l operateur *=, Valeur de c = " << c << endl; c /= a; cout << "Ligne 5 - Exemple de l operateur /= , Valeur de c = " << c << endl; c = 200; c %= a; cout << "Ligne 6 - Exemple de l operateur %=, Valeur de c = " << c << endl; c <<= 2; cout << "Ligne 7 - Exemple de l operateur <<= , Valeur de c = " << c << endl; c >>= 2; cout << "Ligne 8 - Exemple de l operateur >>=, Valeur de c = " << c << endl; c &= 2; cout << "Ligne 9 - Exemple de l operateur &=, Valeur de c = " << c << endl; c ^= 2; cout << "Ligne 10 - Exemple de l operateur ^=, Valeur de c " << c << endl; c |= 2; cout << "Ligne 11 - Exemple de l operateur |=, Valeur de c = " << c << endl; }
Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant
Ligne 1 - Exemple de l operateur =, valeur de c = 21 Ligne 2 - Exemple de l operateur + =, valeur de c = 42 Ligne 3 - Exemple de l operateur - =, valeur de c = 21 Ligne 4 - Exemple de l operateur * =, valeur de c = 441 Ligne 5 - Exemple de l operateur / =, valeur de c = 21 Ligne 6 - Exemple de l operateur % =, valeur de c = 11 Ligne 7 - Exemple de l operateur << =, valeur de c = 44 Ligne 8 - Exemple de l operateur >> =, valeur de c = 11 Ligne 9 - Exemple de l operateur & =, valeur de c = 2 Ligne 10 - Exemple de l operateur ^ =, valeur de c = 0 Ligne 11 - Exemple de l operateur | =, valeur de c = 2
Opérateurs sizeof et ternaire
Outre les opérateurs examinés ci-dessus, il existe quelques autres opérateurs importants dont sizeof et ? : sont pris en charge par le langage C++.
Opérateur | Description | Exemple |
---|---|---|
sizeof() | Renvoie la taille d’une variable. | sizeof(a), (a doit être un entier), si le cas il retournera 4. |
& | Renvoie l’adresse d’une variable. | &a; Renvoie l’adresse de la variable a. |
* | Pointeur sur une variable. | *a; |
? : | Expression conditionnelle. | If Condition est vraie ? donc la valeur X : sinon la valeur Y |
Essayez l’exemple suivant pour comprendre tous les opérateurs divers disponibles en C++
#include <iostream> using namespace std; main() { int a = 4; short b; double c; int* ptr; /* Exemple de taille de l operateur sizeof */ cout << "Ligne 1 - Taille de la variable a= " << sizeof(a) <<endl; cout << "Ligne 2 - Taille de la variable b = " << sizeof(b) <<endl; cout << "Ligne 3 - Taille de la variable c= " << sizeof(c) <<endl; /* Exemple de l'operateur & et l operateur * */ ptr = &a; /* 'Ptr' contient maintenant l'adresse de 'a' */ cout << "valeur de a est" << a <<endl; cout << "*ptr est " << *ptr <<endl; /* Exemple de l operateur ternaire */ a = 10; b = (a == 1) ? 20: 30; cout << "La valeur de b est " << b <<endl; b = (a == 10) ? 20: 30; cout << "La valeur de b est " << b <<endl; }
Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant
Ligne 1 - Taille de la variable a = 4 Ligne 2 - Taille de la variable b = 2 Ligne 3 - Taille de la variable c = 8 Valeur de a est 4 * Ptr est 4. La valeur de b est 30 La valeur de b est 20