C - Opérateurs

Un opérateur est un symbole qui indique au compilateur d'exécuter des fonctions mathématiques ou logiques spécifiques. Le langage 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 au niveau du bit
  • Opérateurs d'affectation
  • Opérateurs divers

Nous allons, dans ce chapitre, examiner le fonctionnement de chaque opérateur.

Opérateurs arithmétiques

Le tableau suivant présente tous les opérateurs arithmétiques pris en charge par le langage C. Supposons une variableA détient 10 et variable B détient 20 alors -

Afficher des exemples

Opérateur La description Exemple
+ Ajoute deux opérandes. A + B = 30
- Soustrait le deuxième opérande du premier. A - B = -10
* Multiplie les deux opérandes. A * B = 200
/ Divise le numérateur par le de-numérateur. B / A = 2
% Opérateur de module et reste après une division entière. B% A = 0
++ L'opérateur d'incrémentation augmente la valeur entière de un. A ++ = 11
- L'opérateur de décrémentation diminue la valeur entière de un. A-- = 9

Opérateurs relationnels

Le tableau suivant montre tous les opérateurs relationnels pris en charge par C. Supposons la variable A détient 10 et variable B détient 20 alors -

Afficher des exemples

Opérateur La description Exemple
== Vérifie si les valeurs de deux opérandes sont égales ou non. Si oui, alors la condition devient vraie. (A == B) n'est pas vrai.
! = Vérifie si les valeurs de deux opérandes sont égales ou non. Si les valeurs ne sont pas égales, la condition devient 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) n'est pas vrai.
< 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) n'est pas vrai.
<= 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.

Opérateurs logiques

Le tableau suivant montre tous les opérateurs logiques pris en charge par le langage C. Supposons une variableA contient 1 et variable B détient 0, alors -

Afficher des exemples

Opérateur La description Exemple
&& Opérateur logique ET appelé. Si les deux opérandes sont différents de zéro, la condition devient vraie. (A && B) est faux.
|| Opérateur OU logique appelé. Si l'un des deux opérandes est différent de zéro, la condition devient vraie. (A || B) est vrai.
! Opérateur PAS logique appelé. Il est utilisé pour inverser l'état logique de son opérande. Si une condition est vraie, alors l'opérateur logique NOT la rendra fausse. ! (A && B) est vrai.

Opérateurs au niveau du bit

L'opérateur au niveau du bit fonctionne sur les bits et effectue des opérations 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 que A = 60 et B = 13 au 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

Le tableau suivant répertorie les opérateurs binaires pris en charge par C. Supposons que la variable 'A' contient 60 et que la variable 'B' contient 13, alors -

Afficher des exemples

Opérateur La description Exemple
& L'opérateur binaire AND copie un bit dans le résultat s'il existe dans les deux opérandes. (A & B) = 12, soit 0000 1100
| L'opérateur OR binaire copie un bit s'il existe dans l'un ou l'autre des opérandes. (A | B) = 61, c'est-à-dire 0011 1101
^ L'opérateur XOR binaire copie le bit s'il est défini dans un opérande mais pas dans les deux. (A ^ B) = 49, soit 0011 0001
~ L'opérateur complémentaire de Binary One est unaire et a pour effet de «retourner» les bits. (~ A) = ~ (60), c'est-à-dire ,. -0111101
<< Opérateur de décalage binaire gauche. La valeur des opérandes de gauche est déplacée vers la gauche du nombre de bits spécifié par l'opérande de droite. A << 2 = 240 soit 1111 0000
>> Opérateur de décalage binaire vers la droite. La valeur des opérandes de gauche est déplacée vers la droite du nombre de bits spécifié par l'opérande de droite. A >> 2 = 15 c'est-à-dire 0000 1111

Opérateurs d'affectation

Le tableau suivant répertorie les opérateurs d'affectation pris en charge par le langage C -

Afficher des exemples

Opérateur La description Exemple
= Opérateur d'affectation simple. Assigne les valeurs des opérandes du côté droit à l'opérande du côté gauche C = A + B attribuera la valeur de A + B à C
+ = Ajouter l'opérateur d'affectation AND. Il ajoute l'opérande droit à l'opérande gauche et affecte le résultat à l'opérande gauche. C + = A équivaut à C = C + A
- = Soustraire l'opérateur d'affectation AND. Il 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 multiplier ET. Il multiplie l'opérande droit par l'opérande gauche et affecte le résultat à l'opérande gauche. C * = A équivaut à C = C * A
/ = Opérateur d'affectation Divide AND. Il divise l'opérande de gauche par l'opérande de droite et affecte le résultat à l'opérande de gauche. C / = A équivaut à C = C / A
% = Opérateur d'assignation de module ET. Il prend le module en utilisant deux opérandes et affecte le résultat à l'opérande de gauche. C% = A équivaut à C = C% A
<< = Opérateur de décalage ET d'affectation gauche. C << = 2 est identique à C = C << 2
>> = Opérateur de décalage ET d'affectation à droite. C >> = 2 est identique à C = C >> 2
& = Opérateur d'affectation AND au niveau du bit. C & = 2 est identique à C = C & 2
^ = Opérateur OU exclusif et d'affectation au niveau du bit. C ^ = 2 est identique à C = C ^ 2
| = Opérateur OU et d'affectation inclusif au niveau du bit. C | = 2 est identique à C = C | 2

Opérateurs divers ↦ sizeof & ternaire

Outre les opérateurs mentionnés ci-dessus, il existe quelques autres opérateurs importants, notamment sizeof et ? : pris en charge par le langage C.

Afficher des exemples

Opérateur La description Exemple
taille de() Renvoie la taille d'une variable. sizeof (a), où a est un entier, retournera 4.
& Renvoie l'adresse d'une variable. &une; renvoie l'adresse réelle de la variable.
* Pointeur vers une variable. *une;
? : Expression conditionnelle. Si la condition est vraie? puis valeur X: sinon valeur Y

Priorité des opérateurs en C

La priorité des opérateurs détermine le regroupement des termes dans une expression et décide de la manière 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 est attribué à 13, et non à 20 car l'opérateur * a une priorité plus élevée que +, il est donc d'abord multiplié par 3 * 2, puis ajouté en 7.

Ici, les opérateurs avec la priorité la plus élevée apparaissent en haut du tableau, ceux avec la priorité la plus basse apparaissent en bas. Dans une expression, les opérateurs de priorité supérieure seront évalués en premier.

Afficher des exemples

Catégorie Opérateur Associativité
Postfix () [] ->. ++ - - 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 au niveau du bit & De gauche à droite
XOR au niveau du bit ^ De gauche à droite
OU au niveau du 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