English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce tutoriel, nous allons apprendre C ++Différents types d'opérateurs. Dans la programmation, un opérateur est un symbole utilisé pour effectuer des opérations sur des valeurs ou des variables.
Un opérateur est un symbole utilisé pour effectuer des opérations sur des variables et des valeurs. Par exemple,+C'est l'opérateur utilisé pour l'addition, et - C'est l'opérateur utilisé pour la soustraction.
C ++中的运算符可以分为六种类型:
其他运算符
opérateur d'affectation
Opérateurs de comparaison
Opérateurs logiques
opérateurs de bit
中的运算符可以分为六种类型:
算术运算符
a + b;
Les opérateurs arithmétiques sont utilisés pour effectuer des opérations arithmétiques sur les variables et les données. Par exemple,+Dans ce cas, ++运算符用于将两个变量a和b相加。同样,C
Supposons que la valeur de la variable A soit 10,la valeur de la variable B est 2Dans, il y a d'autres opérateurs arithmétiques variés.
opérateur | description | Exemple |
---|---|---|
+ | 0,则: | opérateur de décrémentation, la valeur entière diminue + Multiplier les deux opérandes 30 |
- | Ajouter les deux opérandes | opérateur de décrémentation, la valeur entière diminue - Multiplier les deux opérandes -10 |
* | Soustraire la deuxième opérande de la première | opérateur de décrémentation, la valeur entière diminue * Multiplier les deux opérandes 2B donnera |
/ | 00 | le nominateur divisé par le dénominateur / B 2 |
% | A donnera | opérateur de modulo, le reste de la division entière |
++ | B % A donnera 0 1 | opérateur de décrémentation, la valeur entière diminue++ sera 11 |
-- | opérateur d'incrémentation, la valeur entière augmente 1 | opérateur de décrémentation, la valeur entière diminue-- sera 9 |
#include <iostream> using namespace std; int main() { int a, b; a = 7; b = 2; // :算术运算符 Imprimer a divisé par b + cout << "a + b) << endl; // Imprimer la somme de a et b Imprimer a divisé par b - cout << "a - b) << endl; // Imprimer la différence entre a et b Imprimer a divisé par b * cout << "a * b) << endl; // Imprimer le produit de a et b Imprimer a divisé par b / cout << "a / b) << endl; // Imprimer le reste de a et b cout << "a % b = " << (a % b) << endl; return 0; }
Résultat de la sortie
a + b = 9 a - b = 5 a * b = 14 a / b = 3 a % b = 1
Ici, l'opérateur+,- et * calcule respectivement l'addition, la soustraction et la multiplication, comme on s'y attend.
/ opérateur de division
Attention aux opérations dans notre programme (a / b). / L'opérateur est l'opérateur de division.
Comme on peut le voir dans les exemples ci-dessus, si un entier est divisé par un autre entier, on obtient un quotient. Cependant, si le diviseur ou le dividend est un nombre à virgule flottante, on obtient un résultat sous forme de nombre décimal.
Dans C++Dans, 7/2 = 3 7.0 / 2 = 3.5 7 / 2.0 = 3.5 7.0 / 2.0 = 3.5
opérateur % modulo
L'opérateur modulo % calcule le reste. Lorsque a (9) divisé par b(4) le reste est1.
Attention :L'opérateur % ne peut être utilisé qu'avec des entiers.
C ++Des opérateurs d'incrémentation et de décrémentation sont également fournis :++et--.
++Augmenter la valeur de l'opérande1.
-- Réduire la valeur de l'opérande1.
Par exemple,
int num = 5; // num augmente1 ++num;
Ici, la valeur de num à partir de la valeur initiale5augmenter6.
// Le fonctionnement des opérateurs d'incrémentation et de décrémentation #include <iostream> using namespace std; int main() { int a = 10, b = 10, 0, result_a, result_b; // Ajouter a1et stocker le résultat dans result_a result_a = ++a; cout << "result_a = " << result_a << endl; // Soustraire b1et stocker le résultat dans result_b result_b = --b; cout << "result_b = " << result_b << endl; return 0; }
Résultat de la sortie
result_a = 11 result_b = 99
Dans le programme ci-dessus, nous utilisons++et-opérateurs utilisés comme préfixe. Nous pouvons également utiliser ces opérateurs comme suffixe.
Ces opérateurs diffèrent légèrement lorsqu'ils sont utilisés comme préfixe ou suffixe.
Dans C ++En chinois simplifié, l'opérateur d'affectation est utilisé pour attribuer une valeur à une variable. Par exemple,
// }}5Affectation à a a = 5;
Ici, nous avons affecté une valeur à la variable a5.
opérateur | Exemple | Égal |
---|---|---|
= | 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; |
#include <iostream> using namespace std; int main() { int a, b, temp; // a affectation2 a = 2; //b affectation7 b = 7; // Affectez la valeur de a à temp temp = a; // temp sera 2 cout << "temp = " << temp << endl; // Assignez la somme de a et b à a a += b; // a = a +b cout << "a = " << a << endl; return 0; }
Résultat de la sortie
temp = 2 a = 9
Les opérateurs de comparaison sont utilisés pour vérifier la relation entre deux opérandes. Par exemple,
// Vérifiez si a est supérieur à b a > b;
Ici, > est un opérateur de comparaison. Il vérifie si a est supérieur à b.
Si cette relation esttrue,alors retourne1;Si cette relation estfalse,alors retourne0.
Supposons que la valeur de la variable A soit 5,la valeur de la variable B est 11, alors :
opérateur | description | Exemple |
---|---|---|
== | Vérifiez si les valeurs des deux opérandes sont égales, si elles le sont, la condition est vraie. | (A == B) n'est pas vrai. |
!= | Vérifiez si les valeurs des deux opérandes sont égales, si elles ne le sont pas, la condition est vraie. | (A != B) est vrai. |
> | Vérifiez si la valeur de l'opérande de gauche est supérieure à la valeur de l'opérande de droite, si c'est le cas, la condition est vraie. | (A > B) n'est pas vrai. |
< | Vérifiez si la valeur de l'opérande de gauche est inférieure à la valeur de l'opérande de droite, si c'est le cas, la condition est vraie. | (A < B) est vrai. |
>= | Vérifiez si la valeur de l'opérande de gauche est supérieure ou égale à la valeur de l'opérande de droite, si c'est le cas, la condition est vraie. | (A >= B) n'est pas vrai. |
<= | Vérifiez si la valeur de l'opérande de gauche est inférieure ou égale à la valeur de l'opérande de droite, si c'est le cas, la condition est vraie. | (A <= B) est vrai. |
#include <iostream> using namespace std; int main() { int a, b; a = 3; b = 5; bool result; result = (a == b); // false cout << "3 == 5 Le résultat du calcul est " << result << endl; result = (a != b); // true cout << "3 != 5 Le résultat du calcul est " << result << endl; result = a > b; // false cout << "3 > 5 Le résultat du calcul est " << result << endl; result = a < b; // true cout << "3 < 5 Le résultat du calcul est " << result << endl; result = a >= b; // false cout << "3 >= 5 Le résultat du calcul est " << result << endl; result = a <= b; // true cout << "3 <= 5 Le résultat du calcul est " << result << endl; return 0; }
Résultat de la sortie
3 == 5 Le résultat du calcul est 0 3 != 5 Le résultat du calcul est 1 3 > 5 Le résultat du calcul est 0 3 < 5 Le résultat du calcul est 1 3 >= 5 Le résultat du calcul est 0 3 <= 5 Le résultat du calcul est 1
Attention:Les opérateurs de comparaison sont utilisés pour la décision et les boucles.
Les opérateurs logiques sont utilisés pour vérifier si une expression esttrueoufalse。Si l'expression esttrue,alors retourne1;Si l'expression estfalse,alors retourne0.
p> Supposons que la valeur de la variable A soit 1,si la valeur de la variable B est 0, alors :
opérateur | description | Exemple |
---|---|---|
&& | Opérateur logique et. Si les deux opérandes ne sont pas nuls, la condition est vraie. | (A && B) est faux. |
|| | Opérateur logique ou. Si l'un des deux opérandes n'est pas nul, la condition est vraie. | (A || B) est vrai. |
! | appelé opérateur de non logique. Utilisé pour inverser l'état logique de l'opérande. Si la condition est vraie, l'opérateur de non logique le rend faux. | !(A && B) est vrai. |
Dans C ++dans lequel les opérateurs logiques sont généralement utilisés pour la prise de décision. Pour mieux comprendre les opérateurs logiques, regardons les exemples suivants,
Supposons que, a = 5 b = 8 Si, (a > 3) && (b > 5) resultat de calcul true (a > 3) && (b < 5) resultat de calcul false (a > 3) || (b > 5) resultat de calcul true (a > 3) || (b < 5) resultat de calcul true (a < 3) || (b < 5) resultat de calcul false !(a == 3) resultat de calcul true !(a > 3) resultat de calcul false
#include <iostream> using namespace std; int main() { bool result; result = (3 != 5) && (3 < 5; // true cout << "(3 != 5) && (3 < 5) resultat de calcul 0 " << result << endl; result = (3 == 5) && (3 < 5; // false cout << "(3 == 5) && (3 < 5) resultat de calcul 0 " << result << endl; result = (3 == 5) && (3 > 5; // false cout << "(3 == 5) && (3 > 5) resultat de calcul 0 " << result << endl; result = (3 != 5) || (3 < 5; // true cout << "(3 != 5) || (3 < 5) resultat de calcul 0 " << result << endl; result = (3 != 5) || (3 > 5; // true cout << "(3 != 5) || (3 > 5) resultat de calcul 0 " << result << endl; result = (3 == 5) || (3 > 5; // false cout << "(3 == 5) || (3 > 5) resultat de calcul 0 " << result << endl; result = !(5 == 2; // true cout << "!(5 == 2) resultat de calcul 0 " << result << endl; result = !(5 == 5; // false cout << "!(5 == 5) resultat de calcul 0 " << result << endl; return 0; }
Résultat de la sortie
(3 != 5) && (3 < 5) resultat de calcul 1 (3 == 5) && (3 < 5) resultat de calcul 0 (3 == 5) && (3 > 5) resultat de calcul 0 (3 != 5) || (3 < 5) resultat de calcul 1 (3 != 5) || (3 > 5) resultat de calcul 1 (3 == 5) || (3 < 5) resultat de calcul 0 !(5 == 2) resultat de calcul 1 !(5 == 5) resultat de calcul 0
L'utilisation des opérateurs logiques dans les programmes logiques
(3!= 5) && (3 <5) évalue à1, car les deux opérandes(3!= 5) et (3 <5) sont1(true).
(3 == 5) && (3 <5) évalue à 0, car l'opérande(3 == 5) évalue à 0(false).
(3 == 5) && (3> 5) évaluent à 0, car les deux opérandes(3 == 5) et (3> 5) sont tous à 0(false).
(3!= 5) || (3 <5) évalue à1, car les deux opérandes(3!= 5) et (3 <5) sont1(true).
(3!= 5) || (3> 5) évalue à1, car l'opérande(3!= 5) est1(true).
(3 == 5) || (3> 5) évaluent à 0, car les deux opérandes(3 == 5) et (3> 5) sont tous à 0(false).
!(5 == 2) évalue à1, car l'opérande(5 == 2) évalue à 0(false).
!(5 == 5) évalue à 0, car l'opérande(5 == 5) est1(true).
Dans C ++dans lequel les opérateurs de bit sont utilisés pour exécuter des opérations sur des bits individuels. Ils ne peuvent être utilisés qu'avec les types de données char et int.
Le tableau suivant montre C++ Opérateurs de bit pris en charge. Supposons que la valeur de la variable A soit 60, la valeur de la variable B est 13, alors :
opérateur | description | Exemple |
---|---|---|
& | Si il existe dans les deux opérandes à la fois, l'opérateur binaire AND copie un bit dans le résultat. | (A & B) donne 12, ce qui donne 0000 1100 |
| | Si il existe dans l'un des opérandes, l'opérateur binaire OR copie un bit dans le résultat. | (A | B) donne 61,ce qui est 0011 1101 |
^ | Si il existe dans l'un des opérandes mais pas dans les deux opérandes à la fois, l'opérateur de XOR binaire copie un bit dans le résultat. | (A ^ B) donne 49,ce qui est 0011 0001 |
~ | L'opérateur de complément binaire est un opérateur unaire, ayant un effet de "inversion" de bits, c'est-à-dire 0 devient1,1devient 0. | (~A ) donne -61,ce qui est 1100 0011,une forme de complément d'un nombre binaire signé. |
<< | Opérateur de déplacement à gauche en binaire. La valeur de l'opérande de gauche est déplacée vers la gauche de la position indiquée par l'opérande de droite. | A << 2 sera 240, ce qui est 1111 0000 |
>> | Opérateur de déplacement à droite en binaire. La valeur de l'opérande de gauche est déplacée vers la droite de la position indiquée par l'opérande de droite. | A >> 2 sera 15, ce qui donne 0000 1111 |
Pour plus d'informations, veuillez visiterC ++opérateurs de bit.
En plus des opérateurs discutés précédemment, il y a aussi d'autres opérateurs, tels que sizeof, ?, ., &, etc., qui ne peuvent pas être classés dans une ou l'autre catégorie. Nous apprendrons plus à propos de ces opérateurs dans les prochaines leçons.
Le tableau suivant liste les opérateurs C++ d'autres opérateurs importants pris en charge.
opérateur | description |
---|---|
sizeof | opérateur sizeofretourne la taille de la variable. Par exemple, sizeof(a) retournera 4où a est un entier. |
Condition ? X : Y | opérateur conditionnel. Si Condition est vrai ? alors la valeur est X : sinon la valeur est Y. |
, | opérateur de virguleexécuteront une série d'opérations en ordre. La valeur de l'expression de virgule complète est la valeur de la dernière expression de la liste séparée par des virgules. |
.(point) et ->(flèche) | opérateur de membreutilisé pour accéder aux membres des classes, des structures et des unions. |
Cast | opérateur de conversion forceConvertir un type de données en un autre. Par exemple, int(2.2000) retournera 2. |
& | opérateur de pointeur & retourne l'adresse de la 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. |
La priorité des opérateurs détermine la combinaison des éléments dans l'expression. Cela affecte la manière dont une expression est calculé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 * 2ici, x est affecté à 13, pas 20, car l'opérateur * plus + une priorité plus élevée, donc la multiplication est calculée en premier 3*2ensuite, en plus de 7.
Le tableau suivant liste les opérateurs par priorité décroissante des opérateurs, les opérateurs de priorité élevée apparaissent en haut du tableau, et les opérateurs de priorité faible apparaissent en bas du tableau. Dans l'expression, les opérateurs de priorité élevée sont calculés en premier.
catégorie | opérateur | associativité |
---|---|---|
préfixe | () [] -> . ++ - - | de gauche à droite |
unaire | + - ! ~ ++ - - (type)* & sizeof | de droite à gauche |
multiplication division | * / % | de gauche à droite |
addition soustraction | + - | de gauche à droite |
décalage | << >> | de gauche à droite |
relation | < <= > >= | de gauche à droite |
égal | == != | de gauche à droite |
ET bit AND | & | de gauche à droite |
XOR bit XOR | ^ | de gauche à droite |
OU bit OR | | | de gauche à droite |
ET logique AND | && | de gauche à droite |
OU logique OR | || | de gauche à droite |
conditionnelle | ?: | de droite à gauche |
affectation | = += -= *= /= %=>>= <<= &= ^= |= | de droite à gauche |
virgule | , | de gauche à droite |
#include <iostream> using namespace std; int main() { // résoudre d'abord17 * 6 int num1 = 5 - 17 * 6; // et num1expression équivalente int num2 = 5 - (17 * 6; // force le compilateur à résoudre d'abord5 - 17valeur int num3 =5 - 17) * 6; cout << "num1 =1 << endl; cout << "num2 =2 << endl; cout << "num3 =3 << endl; return 0; }
Résultat de la sortie :
num1 = -97 num2 = -97 num3 = -72
Attention : en raison de C ++Il y a beaucoup d'opérateurs qui ont plusieurs priorités, par conséquent, il est fortement recommandé d'utiliser des parenthèses pour rendre le code plus lisible.
Recommandations associées :C++ Priorité et associativité des opérateurs