C++ Opérateurs
Un opérateur est un symbole qui indique au compilateur d'effectuer des opérations mathématiques ou logiques spécifiques. C++ dispose de nombreux 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 présentera un par un les opérateurs arithmétiques, relationnels, logiques, bit à bit, d'affectation et autres opérateurs.
Opérateurs arithmétiques
Le tableau suivant présente les opérateurs arithmétiques pris en charge par C++.
Supposons que la variable A ait une valeur de 10 et que la variable B ait une valeur de 20, alors :
| Opérateurs | Description | Exemple |
|---|---|---|
| + | Ajoute les deux opérandes. | A + B donnera 30 |
| - | Soustrait le deuxième opérande du premier opérande. | 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, le reste après une division entière. | B % A donnera 0 |
| ++ | Opérateur d'incrémentation, la valeur entière augmente de 1. | A++ donnera 11 |
| -- | Opérateur de décrémentation, la valeur entière diminue de 1. | A-- donnera 9 |
Exemple
Voir les exemples suivants pour comprendre les opérateurs arithmétiques disponibles en C++.
Copiez et collez le programme C++ suivant dans le fichier test.cpp, compilez et exécutez le programme.
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
Line 1 - c 的值是 31 Line 2 - c 的值是 11 Line 3 - c 的值是 210 Line 4 - c 的值是 2 Line 5 - c 的值是 1 Line 6 - c 的值是 10 Line 7 - c 的值是 10
Opérateurs relationnels
Le tableau suivant présente les opérateurs relationnels pris en charge par C++.
Supposons que la variable A ait une valeur de 10 et que la variable B ait une valeur de 20, alors :
| Opérateurs | Description | Exemple |
|---|---|---|
| == | Vérifie si les valeurs de deux opérandes sont égales ; si elles sont égales, la condition est vraie. | (A == B) n'est pas vraie. |
| != | Vérifie si les valeurs de deux opérandes sont égales ; si elles ne sont pas égales, la condition est vraie. | (A != B) est vraie. |
| > | Vérifie si la valeur de l'opérande gauche est supérieure à la valeur de l'opérande droit ; si c'est le cas, la condition est vraie. | (A > B) n'est pas vraie. |
| < | Vérifie si la valeur de l'opérande gauche est inférieure à la valeur de l'opérande droit ; si c'est le cas, la condition est vraie. | (A < B) est vraie. |
| >= | Vérifie si la valeur de l'opérande gauche est supérieure ou égale à la valeur de l'opérande droit ; si c'est le cas, la condition est vraie. | (A >= B) n'est pas vraie. |
| <= | Vérifie si la valeur de l'opérande gauche est inférieure ou égale à la valeur de l'opérande droit ; si c'est le cas, la condition est vraie. | (A <= B) est vraie. |
Exemple
Voir les exemples suivants pour comprendre les opérateurs relationnels disponibles en C++.
Copiez et collez le programme C++ suivant dans le fichier test.cpp, compilez et exécutez le programme.
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
Line 1 - a 不等于 b Line 2 - a 不小于 b Line 3 - a 大于 b Line 4 - a 小于或等于 b Line 5 - b 大于或等于 a
Opérateurs logiques
Le tableau suivant présente les opérateurs logiques pris en charge par C++.
Supposons que la variable A ait pour valeur 1 et que la variable B ait pour valeur 0, alors :
| Opérateurs | Description | Exemple |
|---|---|---|
| && | On l'appelle l'opérateur logique ET. Si les deux opérandes sont vrais, alors la condition est vraie. | (A && B) est faux. |
| || | On l'appelle l'opérateur logique OU. Si l'un des deux opérandes est vrai, alors la condition est vraie. | (A || B) est vrai. |
| ! | On l'appelle l'opérateur logique NON. Il est utilisé pour inverser l'état logique d'un opérande. Si la condition est vraie, l'opérateur logique NON la rendra fausse. | !(A && B) est vrai. |
Exemple
Voir les exemples suivants pour comprendre les opérateurs logiques disponibles en C++.
Copiez et collez le programme C++ suivant dans le fichier test.cpp, compilez et exécutez le programme.
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
Line 1 - 条件为真 Line 2 - 条件为真 Line 4 - 条件不为真 Line 5 - 条件为真
Opérateurs bit à bit
Les opérateurs bit à bit agissent sur les bits et effectuent des opérations bit par bit. Les tables de vérité de &, | 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 que A = 60 et B = 13. Exprimés en format binaire, ils sont les suivants :
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
Le tableau suivant présente les opérateurs bit à bit pris en charge par C++. Supposons que la variable A ait une valeur de 60 et que la variable B ait une valeur de 13, alors :
| Opérateurs | Description | Exemple |
|---|---|---|
| & | Opération AND bit à bit. Effectue une opération "AND" sur les bits binaires. Règles de l'opération : 0&0=0; 0&1=0; 1&0=0; 1&1=1; | (A & B) donne 12, soit 0000 1100. |
| | | Opérateur OR bit à bit. Effectue une opération "OR" sur les bits binaires. Règles de l'opération : 0|0=0; 0|1=1; 1|0=1; 1|1=1; | (A | B) donne 61, soit 0011 1101. |
| ^ | Opérateur XOR. Effectue une opération "XOR" sur les bits binaires. Règles de l'opération : 0^0=0; 0^1=1; 1^0=1; 1^1=0; | (A ^ B) a pour valeur 49, soit 0011 0001. |
| ~ | Opérateur NOT bit à bit. Effectue une opération d’« inversion » sur les bits binaires. Règles de fonctionnement : ~1=-2; ~0=-1; | (~A) donnera -61, soit 1100 0011, la forme en complément à deux d'un nombre binaire signé. |
| << | Opérateur de décalage binaire à gauche. Décale tous les bits binaires d'un opérande vers la gauche d'un certain nombre de positions (les bits binaires les plus à gauche sont abandonnés, et des 0 sont insérés à droite). | A << 2 a pour valeur 240, soit 1111 0000. |
| >> | Opérateur de décalage binaire à droite. Décale tous les bits binaires d'un nombre vers la droite d'un certain nombre de positions. Pour les nombres positifs, des 0 sont insérés à gauche ; pour les nombres négatifs, des 1 sont insérés à gauche ; les bits à droite sont supprimés. | A >> 2 a pour valeur 15, soit 0000 1111. |
Exemple
Consultez les exemples suivants pour comprendre les opérateurs bit à bit disponibles en C++.
Copiez et collez le programme C++ suivant dans le fichier test.cpp, compilez et exécutez le programme.
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
Line 1 - c 的值是 12 Line 2 - c 的值是 61 Line 3 - c 的值是 49 Line 4 - c 的值是 -61 Line 5 - c 的值是 240 Line 6 - c 的值是 15
Opérateurs d'affectation
Le tableau suivant répertorie les opérateurs d'affectation pris en charge par C++ :
| Opérateurs | Description | Exemple |
|---|---|---|
| = | Opérateur d'affectation simple. Affecte la valeur de l'opérande droit à l'opérande gauche. | C = A + B affectera la valeur de A + B à C. |
| += | Opérateur d'affectation par addition, ajoute l'opérande droit à l'opérande gauche et affecte le résultat à l'opérande gauche. | C += A équivaut à C = C + A. |
| -= | Opérateur d'affectation par soustraction, soustrait l'opérande droit de l'opérande gauche et affecte le résultat à l'opérande gauche. | C -= A équivaut à C = C - A. |
| *= | Opérateur d'affectation par multiplication, multiplie l'opérande droit par l'opérande gauche et affecte le résultat à l'opérande gauche. | C *= A est équivalent à C = C * A. |
| /= | Opérateur de division et d'affectation, 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. |
| %= | Opérateur de modulo et d'affectation. Calcule le modulo de deux opérandes et l'affecte à l'opérande gauche. | C %= A est équivalent à C = C % A. |
| <<= | Opérateur de décalage à gauche et d'affectation. | C <<= 2 est équivalent à C = C << 2. |
| >>= | Opérateur de décalage à droite et d'affectation. | C >>= 2 est équivalent à C = C >> 2. |
| &= | Opérateur ET bit à bit et d'affectation. | C &= 2 est équivalent à C = C & 2. |
| ^= | Opérateur OU exclusif bit à bit et d'affectation. | C ^= 2 est équivalent à C = C ^ 2 |
| |= | Opérateur OU bit à bit et d'affectation. | C |= 2 est équivalent à C = C | 2 |
Exemple
Voir les exemples suivants pour comprendre les opérateurs d'affectation disponibles en C++.
Copiez et collez le programme C++ suivant dans le fichier test.cpp, compilez et exécutez le programme.
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
Line 1 - = 运算符实例,c 的值 = 21 Line 2 - += 运算符实例,c 的值 = 42 Line 3 - -= 运算符实例,c 的值 = 21 Line 4 - *= 运算符实例,c 的值 = 441 Line 5 - /= 运算符实例,c 的值 = 21 Line 6 - %= 运算符实例,c 的值 = 11 Line 7 - <<= 运算符实例,c 的值 = 44 Line 8 - >>= 运算符实例,c 的值 = 11 Line 9 - &= 运算符实例,c 的值 = 2 Line 10 - ^= 运算符实例,c 的值 = 0 Line 11 - |= 运算符实例,c 的值 = 2
Opérateurs divers
Le tableau suivant répertorie quelques autres opérateurs importants pris en charge par C++.
| Opérateurs | Description |
|---|---|
| sizeof | opérateur sizeofRenvoie la taille d'une variable. Par exemple, sizeof(a) renvoie 4, où a est un entier. |
| Condition ? X : Y | Opérateur conditionnelSi la condition est vraie ? alors la valeur est X : sinon la valeur est Y. |
| , | Opérateur virguleIl exécute une série d'opérations en séquence. La valeur de l'expression virgule entière est la valeur de la dernière expression dans la liste séparée par des virgules. |
| . (point) et -> (flèche) | Opérateur de membreUtilisé pour référencer les membres de classes, de structures et d'unions. |
| Conversion | Opérateur de conversionConvertit un type de données en un autre type de données. Par exemple, int(2.2000) renvoie 2. |
| & | Opérateur de pointeur &Renvoie l'adresse d'une variable. Par exemple, &a; donnera l'adresse réelle de la variable. |
| * | Opérateur de pointeur *Pointe vers une variable. Par exemple, *var; pointera vers la variable var. |
Priorité des opérateurs en C++
La priorité des opérateurs détermine le regroupement 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, les opérateurs de multiplication et de division ont une priorité plus élevée que les opérateurs d'addition et de soustraction.
Par exemple, x = 7 + 3 * 2. Ici, x reçoit 13, et non 20, car l'opérateur * a une priorité plus élevée que +, donc la multiplication 3*2 est calculée en premier, puis 7 est ajouté.
Le tableau suivant répertorie les opérateurs par ordre de priorité décroissante. Les opérateurs ayant une priorité plus élevée apparaissent en haut du tableau, et les opérateurs ayant une priorité plus faible apparaissent en bas. Dans une expression, les opérateurs ayant une priorité plus élevée sont évalués en premier.
| Catégorie | Opérateurs | Associativité |
|---|---|---|
| Postfixe | () [] -> . ++ - - | De gauche à droite |
| Unaire | + - ! ~ ++ - - (type)* & sizeof | De droite à gauche |
| Multiplicatif | * / % | De gauche à droite |
| Additif | + - | De gauche à droite |
| Décalage | << >> | De gauche à droite |
| Relation | < <= > >= | De gauche à droite |
| Égalité | == != | De gauche à droite |
| ET bit à bit | & | De gauche à droite |
| OU exclusif bit à bit | ^ | De gauche à droite |
| OU bit à bit | | | De gauche à droite |
| ET logique | && | De gauche à droite |
| OU logique | || | De gauche à droite |
| Conditions | ?: | De droite à gauche |
| Affectation | = += -= *= /= %=>>= <<= &= ^= |= | De droite à gauche |
| comma | , | De gauche à droite |
Exemple
Voir les exemples suivants pour comprendre la priorité des opérateurs en C++.
Copiez et collez le programme C++ suivant dans le fichier test.cpp, compilez et exécutez le programme.
Comparez la différence entre la présence et l'absence de parenthèses, ce qui produira des résultats différents. Comme (), /, *, et + ont des niveaux de priorité différents, les opérateurs ayant une priorité plus élevée seront évalués en premier.
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
(a + b) * c / d 的值是 90 ((a + b) * c) / d 的值是 90 (a + b) * (c / d) 的值是 90 a + (b * c) / d 的值是 50autres extensions