Guide complet des opérateurs C++ : Types, utilisation et bonnes pratiques
Un opérateur est un symbole qui indique au compilateur d'effectuer des manipulations mathématiques ou logiques spécifiques. C++ est riche en opérateurs intégrés 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
- Opérateurs divers
Ce chapitre examinera les opérateurs arithmétiques, relationnels, logiques, bit à bit, d'affectation et autres un par un.
Opérateurs arithmétiques
Voici les opérateurs arithmétiques supportés par le langage C++ :
Supposons que la variable A vaut 10 et la variable B vaut 20, alors :
| Opérateur | Description | Exemple |
|---|---|---|
| + | Additionne deux opérandes | A + B donnera 30 |
| - | Soustrait le second opérande du premier | A - B donnera -10 |
| * | Multiplie les deux opérandes | A * B donnera 200 |
| / | Divise le numérateur par le dénominateur | B / A donnera 2 |
| % | Opérateur modulo et reste après division entière | B % A donnera 0 |
| ++ | Opérateur d'incrémentation, augmente la valeur entière de 1 | A++ donnera 11 |
| -- | Opérateur de décrémentation, diminue la valeur entière de 1 | A-- donnera 9 |
Opérateurs relationnels
Voici les opérateurs relationnels supportés par le langage C++ :
Supposons que la variable A vaut 10 et la variable B vaut 20, alors :
| Opérateur | Description | Exemple |
|---|---|---|
| == | Vérifie si les valeurs de deux opérandes sont égales, si oui la condition devient vraie. | (A == B) n'est pas vrai. |
| != | Vérifie si les valeurs de deux opérandes sont égales, si les valeurs ne sont pas égales la condition devient vraie. | (A != B) est vrai. |
| > | Vérifie si la valeur de l'opérande de gauche est supérieure à celle de droite, si oui la condition devient vraie. | (A > B) n'est pas vrai. |
| < | Vérifie si la valeur de l'opérande de gauche est inférieure à celle de droite, si oui la condition devient vraie. | (A < B) est vrai. |
| >= | Vérifie si la valeur de l'opérande de gauche est supérieure ou égale à celle de droite, si oui la condition devient vraie. | (A >= B) n'est pas vrai. |
| <= | Vérifie si la valeur de l'opérande de gauche est inférieure ou égale à celle de droite, si oui la condition devient vraie. | (A <= B) est vrai. |
Opérateurs logiques
Voici les opérateurs logiques supportés par le langage C++ :
Supposons que la variable A vaut 1 et la variable B vaut 0, alors :
| Opérateur | Description | Exemple |
|---|---|---|
| && | Appelé opérateur ET logique. Si les deux opérandes sont non-nuls, la condition devient vraie. | (A && B) est faux. |
| || | Appelé opérateur OU logique. Si l'un des deux opérandes est non-nul, la condition devient vraie. | (A || B) est vrai. |
| ! | Appelé opérateur NON logique. Inverse l'état logique de son opérande. Si une condition est vraie, l'opérateur NON la rend fausse. | !(A && B) est vrai. |
Opérateurs bit à bit
L'opérateur bit à bit travaille sur les bits et effectue une 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 :
A = 0011 1100 B = 0000 1101 ----------------- A & B = 0000 1100 A | B = 0011 1101 A ^ B = 0011 0001 ~A = 1100 0011
Les opérateurs bit à bit supportés par C++ sont listés dans le tableau suivant. Supposons que la variable A vaut 60 et la variable B vaut 13, alors :
| Opérateur | Description | Exemple |
|---|---|---|
| & | Opérateur ET binaire : copie un bit dans le résultat s'il existe dans les deux opérandes. | (A & B) donnera 12 soit 0000 1100 |
| | | Opérateur OU binaire : copie un bit s'il existe dans l'un ou l'autre opérande. | (A | B) donnera 61 soit 0011 1101 |
| ^ | Opérateur XOR binaire : copie le bit s'il est défini dans un opérande mais pas les deux. | (A ^ B) donnera 49 soit 0011 0001 |
| ~ | Opérateur de complément à 1 binaire : unaire, a pour effet d'inverser les bits. | (~A) donnera -61 soit 1100 0011 en forme de complément à 2. |
| << | Opérateur de décalage vers la gauche binaire. La valeur de l'opérande de gauche est décalée vers la gauche du nombre de bits spécifié par l'opérande de droite. | A << 2 donnera 240 soit 1111 0000 |
| >> | Opérateur de décalage vers la droite binaire. La valeur de l'opérande de gauche est décalée vers la droite du nombre de bits spécifié par l'opérande de droite. | A >> 2 donnera 15 soit 0000 1111 |
Opérateurs d'affectation
Voici les opérateurs d'affectation supportés par le langage C++ :
| Opérateur | Description | Exemple |
|---|---|---|
| = | Opérateur d'affectation simple, assigne les valeurs des opérandes de droite à l'opérande de gauche. | C = A + B assignera la valeur de A + B dans C |
| += | Opérateur d'addition ET affectation, ajoute l'opérande de droite à l'opérande de gauche et assigne le résultat à l'opérande de gauche. | C += A équivaut à C = C + A |
| -= | Opérateur de soustraction ET affectation, soustrait l'opérande de droite de l'opérande de gauche et assigne le résultat à l'opérande de gauche. | C -= A équivaut à C = C - A |
| *= | Opérateur de multiplication ET affectation, multiplie l'opérande de droite avec l'opérande de gauche et assigne le résultat à l'opérande de gauche. | C *= A équivaut à C = C * A |
| /= | Opérateur de division ET affectation, divise l'opérande de gauche par l'opérande de droite et assigne le résultat à l'opérande de gauche. | C /= A équivaut à C = C / A |
| %= | Opérateur de modulo ET affectation, prend le modulo avec deux opérandes et assigne le résultat à l'opérande de gauche. | C %= A équivaut à C = C % A |
| <<= | Opérateur de décalage gauche ET affectation. | C <<= 2 équivaut à C = C << 2 |
| >>= | Opérateur de décalage droit ET affectation. | C >>= 2 équivaut à C = C >> 2 |
| &= | Opérateur ET bit à bit ET affectation. | C &= 2 équivaut à C = C & 2 |
| ^= | Opérateur XOR bit à bit ET affectation. | C ^= 2 équivaut à C = C ^ 2 |
| |= | Opérateur OU bit à bit ET affectation. | C |= 2 équivaut à C = C | 2 |
Opérateurs divers
Le tableau suivant liste quelques autres opérateurs supportés par C++ :
| N° | Opérateur et description |
|---|---|
| 1 | sizeof L'opérateur sizeof retourne la taille d'une variable. Par exemple, sizeof(a), où 'a' est un entier, retournera 4. |
| 2 | Condition ? X : Y Opérateur conditionnel (?). Si Condition est vrai, retourne la valeur de X, sinon retourne la valeur de Y. |
| 3 | , L'opérateur virgule provoque une séquence d'opérations. La valeur de l'expression virgule entière est la valeur de la dernière expression de la liste séparée par des virgules. |
| 4 | . (point) et -> (flèche) Les opérateurs de membre sont utilisés pour référencer les membres individuels des classes, structures et unions. |
| 5 | Cast Les opérateurs de conversion convertissent un type de données en un autre. Par exemple, int(2.2000) retournerait 2. |
| 6 | & L'opérateur pointeur & retourne l'adresse d'une variable. Par exemple &a donnera l'adresse réelle de la variable. |
| 7 | * L'opérateur pointeur * est un pointeur vers une variable. Par exemple *var sera un pointeur vers la variable var. |
Priorité des opérateurs en C++
La priorité des opérateurs détermine le groupement des termes dans une expression. Cela affecte la façon dont une expression est évaluée. Certains opérateurs ont une priorité plus élevée que d'autres ; par exemple, l'opérateur de multiplication a une priorité plus élevée que l'opérateur d'addition.
Par exemple x = 7 + 3 * 2 ; ici, x se voit assigner 13, pas 20, car l'opérateur * a une priorité plus élevée que +, donc il est d'abord multiplié 3*2 puis ajouté à 7.
Ici, les opérateurs avec la priorité la plus élevée apparaissent en haut du tableau, ceux avec la plus faible en bas. Dans une expression, les opérateurs de priorité plus élevée seront évalués en premier.
| Catégorie | Opérateur | Associativité |
|---|---|---|
| Postfixe | () [] -> . ++ -- | De gauche à droite |
| Unaire | + - ! ~ ++ -- (type)* & sizeof | De droite à gauche |
| Multiplicatif | * / % | De gauche à droite |
| Additif | + - | De gauche à droite |
| Décalage | << >> | De gauche à droite |
| Relationnel | < <= > >= | De gauche à droite |
| Égalité | == != | De gauche à droite |
| ET bit à bit | & | De gauche à droite |
| XOR bit à bit | ^ | De gauche à droite |
| OU bit à bit | | | De gauche à droite |
| ET logique | && | De gauche à droite |
| OU logique | || | De gauche à droite |
| Conditionnel | ?: | De droite à gauche |
| Affectation | = += -= *= /= %= >>= <<= &= ^= |= | De droite à gauche |
| Virgule | , | De gauche à droite |
Langue C
- Opérateurs C# — Guide complet des opérateurs en C#
- Comprendre les types de données C++ : Fondamentaux, modificateurs et bonnes pratiques
- Maîtriser les opérateurs C++ : Guide complet avec exemples pratiques
- Commentaires C++ : Bonnes pratiques pour un code lisible et maintenable
- Maîtriser les templates de classe en C++ : Guide pratique
- Maîtriser les opérateurs en programmation C : Guide complet
- Maîtriser les opérateurs Python : Guide complet
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Opérateurs C++ expliqués : Types, exemples et programmes d'exemple