Que sont les opérateurs?
Un opérateur est un symbole utilisé pour effectuer des opérations sur des opérandes. Un opérateur opère des opérandes. Les opérations peuvent être mathématiques ou logiques. Il existe différents types d'opérateurs en C ++ pour effectuer différentes opérations.
Considérez l'opération suivante:
a = x + y;
Dans l'instruction ci-dessus, x et y sont les opérandes tandis que + est un opérateur d'addition. Lorsque le compilateur C ++ rencontre l'instruction ci-dessus, il ajoute x et y et stocke le résultat dans la variable a.
Dans ce didacticiel C ++, vous apprendrez:
- Que sont les opérateurs?
- Opérateurs arithmétiques
- Opérateurs relationnels
- Opérateurs logiques
- Opérateurs au niveau du bit
- Opérateurs d'affectation
- Opérateur divers
- taille de l'opérateur
- Opérateur virgule
- Opérateur conditionnel
- Priorité des opérateurs
Opérateurs arithmétiques
Ce sont les types d'opérateurs utilisés pour effectuer des opérations mathématiques / arithmétiques. Ils incluent:
Opérateur | Description |
+ opérateur d'addition | Ajoute aux opérandes. |
- opérateur de soustraction | Soustrait le 2 ème opérande du 1 er opérande. |
* opérateur de multiplication | Multiplie 2 opérandes. |
/ opérateur de division. | Divise le numérateur par le dénominateur. |
opérateur% module | Renvoie le reste après la division. |
++ opérateur d'incrément | Augmente une valeur entière de 1. |
- opérateur de décrémentation. | Diminue une valeur entière de 1. |
Par exemple:
#includeusing namespace std;int main() {int a = 11;int b = 5;int c;cout << "a + b is : << a+b << endl; //11+5cout << "a - b is : << a-b << endl; //11-5cout << "a * b is : << a*b << endl; //11*5cout << "a / b is : << a/b << endl; //11/5cout << "a % b is : << a%b << endl; //11%5cout << "a++ is : << a++ << endl; //11++cout << "a-- is : << a-- << endl; //12--return 0;}
Production:
Voici une capture d'écran du code:
Explication du code:
- Inclure le fichier d'en-tête iostream dans notre code. Cela nous permettra de lire et d'écrire sur la console.
- Inclure l'espace de noms std afin d'utiliser ses classes et ses fonctions sans l'appeler.
- Appel de la fonction main () à l'intérieur de laquelle la logique du programme doit être ajoutée. Le {marque le début du corps de la fonction main ().
- Déclarer une variable entière a et l'initialiser à 11.
- Déclarer une variable entière b et l'initialiser à 5.
- Déclarer une variable entière c.
- Impression de la valeur de l'opération a + b à côté d'un autre texte sur la console.
- Impression de la valeur de l'opération ab à côté d'un autre texte sur la console.
- Impression de la valeur de l'opération a * b à côté d'un autre texte sur la console.
- Impression de la valeur de l'opération a / b à côté d'un autre texte sur la console.
- Impression de la valeur de l'opération a% b à côté d'un autre texte sur la console.
- Impression de la valeur de l'opération a ++ à côté d'un autre texte sur la console.
- Impression de la valeur de l'opération a - à côté d'un autre texte sur la console.
- La fonction main () doit renvoyer une valeur si le programme fonctionne correctement.
- Fin du corps de la fonction main ().
Opérateurs relationnels
Ces types d'opérateurs effectuent des comparaisons sur les opérandes. Par exemple, vous devrez peut-être savoir quel opérande est supérieur ou inférieur à l'autre. Ils incluent:
Description
Opérateur | Description |
== égal à l'opérateur. | Vérifie l'égalité de deux valeurs d'opérande. |
! = différent de l'opérateur | Vérifie l'égalité de deux valeurs d'opérande. |
> excellent que l'opérateur | Vérifie si la valeur de l'opérande gauche est supérieure à la valeur de l'opérande droit. |
Vérifie si la valeur de l'opérande gauche est inférieure à la valeur de l'opérande droit. |
|
> = supérieur ou égal à l'opérateur | Vérifie si la valeur de l'opérande gauche est supérieure ou égale à la valeur de l'opérande droit. |
<= inférieur ou égal à l'opérateur. | Vérifie si la valeur de l'opérande gauche est inférieure ou égale à la valeur de l'opérande droit. |
Par exemple:
#includeusing namespace std;int main() {int a = 11;int b = 5;cout << "a=11, b=5" << endl;if (a == b) {cout << "a == b is true" << endl;}else {cout << " a == b is false" << endl;}if (a < b) {cout << "a < b is true" << endl;}else {cout << "a < b is false" << endl;}if (a> b) {cout << "a> b is true" << endl;}else {cout << "a> b is false" << endl;}return 0;}
Production:
Voici une capture d'écran du code:
Explication du code:
- Inclure le fichier d'en-tête iostream dans notre code. Cela nous permettra de lire et d'écrire sur la console.
- Inclure l'espace de noms std afin d'utiliser ses classes et ses fonctions sans l'appeler.
- Appel de la fonction main () à l'intérieur de laquelle la logique du programme doit être ajoutée. Le {marque le début du corps de la fonction main ().
- Déclarer une variable entière a et l'initialiser à 11.
- Déclarer une variable entière b et l'initialiser à 5.
- Impression de texte sur la console indiquant les valeurs des variables a et b.
- Exécution de l'opération arithmétique, a == b dans une instruction de prise de décision if pour savoir si elle est vraie ou fausse. Le {marque le début du corps de l'instruction if.
- Texte à imprimer sur la console si l'opération a == b est vraie. Le endl est un mot clé C ++ pour la ligne de fin. Il pousse le curseur pour lancer l'impression dans la ligne suivante. Le} marque la fin du corps de l'instruction if.
- L'autre partie de l'instruction if ci-dessus. Il indique ce qu'il faut faire si l'opération a == b est fausse.
- Texte à imprimer sur la console si l'opération a == b est fausse. Le endl est un mot clé C ++ pour la ligne de fin. Il pousse le curseur pour lancer l'impression dans la ligne suivante. Le} marque la fin du corps de l'instruction else.
- Exécution de l'opération arithmétique, un
- Texte à imprimer sur la console si l'opération a
- L'autre partie de l'instruction if ci-dessus. Il indique ce qu'il faut faire si l'opération a
- Texte à imprimer sur la console si l'opération a
- Exécution de l'opération arithmétique a> b dans une instruction de prise de décision if pour savoir si elle est vraie ou fausse. Le {marque le début du corps de l'instruction if.
- Texte à imprimer sur la console si l'opération a> b est vraie. Le endl est un mot clé C ++ pour la ligne de fin. Il pousse le curseur pour lancer l'impression dans la ligne suivante. Le} marque la fin du corps de l'instruction if.
- L'autre partie de l'instruction if ci-dessus. Il indique ce qu'il faut faire si l'opération a> b est fausse.
- Texte à imprimer sur la console si l'opération a> b est fausse. Le endl est un mot clé C ++ pour la ligne de fin. Il pousse le curseur pour lancer l'impression dans la ligne suivante. Le} marque la fin du corps de l'instruction else.
- La fonction main () doit renvoyer une valeur si le programme fonctionne correctement.
- Fin du corps de la fonction main ().
- Texte à imprimer sur la console si l'opération a
Opérateurs logiques
Les opérateurs logiques combinent deux / plusieurs contraintes / conditions. Les opérateurs logiques complètent également l'évaluation de l'état d'origine considéré. Ils incluent:
Opérateur | Description |
&& opérateur ET logique. | La condition est vraie si les deux opérandes ne sont pas nuls. |
|| opérateur OR logique. | La condition est vraie si l'un des opérandes est différent de zéro. |
! opérateur NOT logique. | Il inverse l'état logique de l'opérande. Si l'opérande est vrai, le! l'opérateur le rend faux. |
Par exemple:
#includeusing namespace std;int main(){int a = 5, b = 2, c = 6, d = 4;if (a == b && c> d)cout << "a equals to b AND c is greater than d\n";elsecout << "AND operation returned false\n";if (a == b || c> d)cout << "a equals to b OR c is greater than d\n";elsecout << "Neither a is equal to b nor c is greater than d\n";if (!b)cout << "b is zero\n";elsecout << "b is not zero";return 0;}
Production:
Voici une capture d'écran du code:
Explication du code:
- Inclure le fichier d'en-tête iostream dans notre code. Cela nous permettra de lire et d'écrire sur la console.
- Inclure l'espace de noms std afin d'utiliser ses classes et ses fonctions sans l'appeler.
- Appel de la fonction main () à l'intérieur de laquelle la logique du programme doit être ajoutée.
- Le {marque le début du corps de la fonction main ().
- Déclarer 4 variables entières a, b, c et d et leur attribuer des valeurs différentes.
- Utilisation de l'opérateur && (AND) dans l'instruction if. Il joint deux conditions, la valeur de a est égale à la valeur de b et la valeur de a est supérieure à la valeur de b. La première condition est fausse, la deuxième condition est vraie. False && true est False, par conséquent, le résultat de if est faux.
- Texte à imprimer sur la console si l'instruction if ci-dessus est vraie. Cela ne sera pas exécuté.
- Partie à exécuter si l'instruction if ci-dessus est fausse.
- Texte à imprimer sur la console si l'instruction if est fausse. Cela sera exécuté.
- Utilisation du || (OR) dans une instruction if. Il joint deux conditions, la valeur de a est égale à la valeur de b et la valeur de a est supérieure à la valeur de b. La première condition est fausse, la deuxième condition est vraie. False || true est True, par conséquent, le résultat de if est vrai.
- Texte à imprimer sur la console si l'instruction if ci-dessus est vraie. Cela sera exécuté.
- Partie à exécuter si l'instruction if ci-dessus est fausse.
- Texte à imprimer sur la console si l'instruction if est fausse. Cela ne sera pas exécuté.
- Vérifier si la valeur de la variable est 0.
- Texte à imprimer sur la console si l'instruction if ci-dessus est vraie. Cela ne sera pas exécuté.
- Partie à exécuter si l'instruction if ci-dessus est fausse.
- Texte à imprimer sur la console si l'instruction if est fausse. Cela sera exécuté.
- La fonction main () doit renvoyer une valeur si le programme fonctionne correctement.
- Fin du corps de la fonction main ().
Opérateurs au niveau du bit
Les opérateurs au niveau du bit effectuent des opérations au niveau du bit sur les opérandes. Tout d'abord, les opérateurs sont convertis au niveau du bit, puis les opérations sont effectuées sur les opérandes. Lorsque des opérations arithmétiques telles que l'addition et la soustraction sont effectuées au niveau du bit, les résultats peuvent être obtenus plus rapidement. Ils incluent:
Opérateur | Description |
& (ET au niveau du bit). | Il prend 2 nombres (opérandes) puis exécute ET sur chaque bit de deux nombres. Si les deux valent 1, AND renvoie 1, sinon 0. |
| (OU au niveau du bit) | Prend 2 nombres (opérandes) puis exécute OU sur chaque bit de deux nombres. Il renvoie 1 si l'un des bits est 1. |
(le XOR au niveau du bit) | Prend 2 nombres (opérandes) puis exécute XOR sur chaque bit de 2 nombres. Il renvoie 1 si les deux bits sont différents. |
<< (décalage à gauche) | Prend deux nombres puis décale à gauche les bits du premier opérande. Le deuxième opérande détermine le nombre total de places à décaler. |
>> (décalage à droite) | Prend deux nombres puis décale à droite les bits du premier opérande. Le deuxième opérande détermine le nombre de places à décaler. |
~ (PAS au niveau du bit). | Prend un nombre puis inverse tous ses bits. |
#includeusing namespace std;int main() {unsigned int p = 60; // 60 = 0011 1100unsigned int q = 13; // 13 = 0000 1101int z = 0;z = p & q;cout << "p&q is : " << z << endl; // 12 = 0000 1100z = p | q;cout << "p|q is : " << z << endl; // 61 = 0011 1101z = p q;cout << "p^q is : " << z << endl; // 49 = 0011 0001z = ~p;cout << "~p is : " << z << endl; // -61 = 1100 0011z = p << 2;cout << "p<<2 is: " << z << endl; // 240 = 1111 0000z = p>> 2;cout << "p>>2 is : " << z << endl; // 15 = 0000 1111return 0;}
Production:
Voici une capture d'écran du code:
Explication du code:
- Inclure le fichier d'en-tête iostream dans notre code. Cela nous permettra de lire et d'écrire sur la console.
- Inclure l'espace de noms std afin d'utiliser ses classes et ses fonctions sans l'appeler.
- Appel de la fonction main () à l'intérieur de laquelle la logique du programme doit être ajoutée. Le {marque le début du corps de la fonction main ().
- Déclarer une variable entière non signée p et lui attribuer une valeur de 60, soit 0011 1100 en binaire.
- Déclarer une variable entière non signée q et lui attribuer une valeur de 13, soit 0000 1101 en binaire.
- Déclarer une variable entière z et l'initialiser à 0.
- Exécution de l'opération binaire & (AND) sur les variables p et q et stockage du résultat dans la variable z.
- Impression du résultat de l'opération ci-dessus sur la console avec un autre texte.
- Exécution du bitwise | (OU) opération sur les variables p et q et stockage du résultat dans la variable z.
- Impression du résultat de l'opération ci-dessus sur la console avec un autre texte.
- Exécution de l'opération de bits (XOR) sur les variables p et q et stockage du résultat dans la variable z.
- Impression du résultat de l'opération ci-dessus sur la console avec un autre texte.
- Exécution de l'opération au niveau du bit ~ (NOT) sur les variables p et q et stockage du résultat dans la variable z.
- Impression du résultat de l'opération ci-dessus sur la console avec un autre texte.
- Exécution de l'opération de décalage vers la gauche sur la variable p et stockage du résultat dans la variable z.
- Impression du résultat de l'opération ci-dessus sur la console avec un autre texte.
- Exécution de l'opération de décalage vers la droite sur la variable p et stockage du résultat dans la variable z.
- Impression du résultat de l'opération ci-dessus sur la console avec un autre texte.
- La fonction main () doit renvoyer une valeur si le programme fonctionne correctement.
- Fin du corps de la fonction main ().
Opérateurs d'affectation
Les opérateurs d'affectation affectent des valeurs aux variables. L'opérande / variable est ajouté au côté gauche de l'opérateur tandis que la valeur est ajoutée au côté droit de l'opérateur. La variable et la valeur doivent appartenir au même type de données, sinon le compilateur C ++ lèvera une erreur. Par exemple:
x = 5;
Dans l'exemple ci-dessus, x est la variable / l'opérande, = est l'opérateur d'affectation tandis que 5 est la valeur. Voici les opérateurs d'affectation populaires en C ++:
Opérateur | Description |
= (opérateur d'affectation simple) | Il attribue une valeur à droite à une variable à gauche. |
+ = (Ajouter un opérateur d'affectation AND) | Il ajoute d'abord la valeur de l'opérande gauche à la valeur de l'opérande droit, puis affecte le résultat à la variable de gauche. |
- = (opérateur d'affectation de soustraction ET) | Il soustrait d'abord la valeur de l'opérande droit de la valeur de l'opérande gauche, puis affecte le résultat à la variable de gauche. |
* = (Opérateur d'affectation multiplier ET) | Il multiplie d'abord la valeur de l'opérande gauche par la valeur de l'opérande droit, puis affecte le résultat à la variable de gauche. |
/ = (Opérateur d'affectation Division AND) | Il divise d'abord la valeur de l'opérande gauche par la valeur de l'opérande droit, puis affecte le résultat à la variable de gauche. |
Par exemple:
#includeusing namespace std;int main(){int x = 5;cout << "Initial value of x is " << x << "\n";x += 5;cout << "x += 5 gives : << x << "\n";x -= 5;cout << "x -= 5 gives : " << x << "\n";x *= 5;cout << "x *= 5 gives : << x << "\n";x /= 5;cout << "x /= 5 gives : " << x << "\n";return 0;}
Production:
Voici une capture d'écran du code:
Explication du code:
- Inclure le fichier d'en-tête iostream dans notre code. Cela nous permettra de lire et d'écrire sur la console.
- Inclure l'espace de noms std afin d'utiliser ses classes et ses fonctions sans l'appeler.
- Appel de la fonction main () à l'intérieur de laquelle la logique du programme doit être ajoutée.
- Le {marque le début du corps de la fonction main ().
- Déclarer une variable entière x et lui attribuer une valeur de 5.
- Impression de la valeur de la variable x à côté d'un autre texte sur la console. Le \ n est un caractère de nouvelle ligne. Il déplace le curseur sur la ligne suivante lors de l'impression.
- Ajout de 5 à la valeur de la variable x et affectation du résultat à la variable x.
- Impression de la valeur de la variable x sur la console à côté d'un autre texte.
- Soustraire 5 de la valeur de x et attribuer le résultat à la variable x.
- Impression de la valeur de la variable x sur la console à côté d'un autre texte.
- Multiplier la valeur de la variable x par 5 et attribuer le résultat à la variable x.
- Impression de la valeur de la variable x sur la console à côté d'un autre texte.
- Diviser la valeur de la variable x par 5 et attribuer le résultat à la variable x.
- Impression de la valeur de la variable x sur la console à côté d'un autre texte.
- La fonction main () doit renvoyer une valeur si le programme fonctionne correctement.
- Fin du corps de la fonction main ().
Opérateur divers
Parlons d'autres opérateurs pris en charge par C ++:
taille de l'opérateur
Cet opérateur détermine la taille d'une variable. Utilisez l'opérateur sizeof pour déterminer la taille d'un type de données. Par exemple:
#includeusing namespace std;int main() {cout<<"Size of int : "<< sizeof(int) << "\n";cout<<"Size of char : " << sizeof(char) << "\n";cout<<"Size of float : " << sizeof(float) << "\n";cout<<"Size of double : " << sizeof(double) << "\n";return 0;}
Production:
Voici une capture d'écran du code:
Explication du code:
- Inclure le fichier d'en-tête iostream dans notre code. Cela nous permettra de lire et d'écrire sur la console.
- Inclure l'espace de noms std afin d'utiliser ses classes et ses fonctions sans l'appeler.
- Appel de la fonction main () à l'intérieur de laquelle la logique du programme doit être ajoutée. Le {marque le début du corps de la fonction main ().
- Déterminer la taille du type de données entier à l'aide de l'opérateur sizeof et l'imprimer avec un autre texte sur la console.
- Déterminer la taille du type de données caractère à l'aide de l'opérateur sizeof et l'imprimer avec un autre texte sur la console.
- Déterminer la taille du type de données float à l'aide de l'opérateur sizeof et l'imprimer avec un autre texte sur la console.
- Déterminer la taille du type de données float à l'aide de l'opérateur sizeof et l'imprimer avec un autre texte sur la console.
- La fonction main () doit renvoyer une valeur si le programme fonctionne correctement.
- Fin du corps de la fonction main ().
Opérateur virgule
L'opérateur virgule (,) déclenche l'exécution d'une séquence d'opérations. Il exprime le premier opérande et rejette le résultat. Ensuite, il évalue le deuxième opérande et renvoie la valeur et le type.
#includeusing namespace std;int main() {int x, y;y = 100;x = (y++, y + 10, 99 + y);cout << x;return 0;}
Production:
Voici une capture d'écran du code:
Explication du code:
- Inclure le fichier d'en-tête iostream dans notre code. Cela nous permettra de lire et d'écrire sur la console.
- Inclure l'espace de noms std afin d'utiliser ses classes et ses fonctions sans l'appeler.
- Appel de la fonction main () à l'intérieur de laquelle la logique du programme doit être ajoutée. Le {marque le début du corps de la fonction main ().
- Déclarer deux variables entières x et y.
- Affecter la variable ya une valeur de 100.
- Incrémenter la valeur de y et attribuer le résultat à la variable x. Il commence par y à 100, puis l'incrémente à 101 (y ++). Ensuite, y est ajouté à 10. Enfin, y, toujours à 101, est ajouté à 99, ce qui donne 200. x vaut maintenant 200.
- Impression de la valeur de la variable x sur la console.
- La fonction main () doit renvoyer une valeur si le programme fonctionne correctement.
- Fin du corps de la fonction main ().
Opérateur conditionnel
Cet opérateur évalue une condition et agit en fonction du résultat de l'évaluation.
Syntaxe:
Condition ? Expression2 : Expression3;
Paramètres:
- La condition est la condition à évaluer.
- Expression1 est l'expression à exécuter si la condition est vraie.
- Expression3 est l'expression à exécuter si la condition est fausse.
Par exemple:
#includeusing namespace std;int main() {int a = 1, b;b = (a < 10) ? 2 : 5;cout << "value of b: " << b << endl;return 0;}
Production:
Voici une capture d'écran du code:
Explication du code:
- Inclure le fichier d'en-tête iostream dans notre code. Cela nous permettra de lire et d'écrire sur la console.
- Inclure l'espace de noms std afin d'utiliser ses classes et ses fonctions sans l'appeler.
- Appel de la fonction main () à l'intérieur de laquelle la logique du programme doit être ajoutée. Le {marque le début du corps de la fonction main ().
- Déclarer deux variables entières a et b. La variable a a reçu la valeur 1.
- Attribuer une valeur à la variable b. Si la variable a est inférieure à 10, b se verra attribuer la valeur 2, sinon, b se verra attribuer une valeur de 5.
- Impression de la valeur de la variable b sur la console à côté d'un autre texte.
- La fonction main () doit renvoyer une valeur si le programme fonctionne correctement.
- Fin du corps de la fonction main ().
Priorité des opérateurs
Une seule opération peut avoir plus d'un opérateur. Dans ce cas, la priorité des opérateurs détermine celui évalué en premier.
La liste suivante montre la priorité des opérateurs en C ++, avec une priorité décroissante de gauche à droite:
(), [], *, /,%, +/-, <<, >>, ==,! =, ^, |, &&, ||,?:, =, + =, - =, 8 = , / =
Résumé:
- Les opérateurs sont des symboles permettant d'effectuer des opérations logiques et arithmétiques.
- Les opérateurs arithmétiques nous aident à effectuer diverses opérations arithmétiques sur les opérandes.
- Les opérateurs relationnels nous aident à effectuer diverses opérations de comparaison sur les opérandes.
- Les opérateurs logiques nous aident à effectuer diverses opérations logiques sur les opérandes.
- Les opérateurs au niveau du bit nous aident à effectuer des opérations au niveau du bit sur les opérandes.
- Les opérateurs d'affectation nous aident à effectuer diverses opérations arithmétiques sur les opérandes.
- L'opérateur sizeof renvoie la taille d'une variable ou d'un type de données.
- L'opérateur virgule exécute une séquence d'opérations.
- L'opérateur conditionnel évalue une condition et agit en fonction du résultat.