C

Programmation en C – Les opérateurs

Un opérateur est un symbole qui indique au compilateur d’effectuer des fonctions mathématiques ou logiques spécifiques. Le langage C intègre plusieurs opérateurs 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

Dans ce chapitre, nous allons voir le fonctionnement de chaque opérateur.
 
[wx_adsense]  

Opérateurs arithmétiques

Le tableau suivant présente tous les opérateurs arithmétiques supportés par le langage C. Supposons que la variable A contenant la valeur 10 et que la variable B contenant la valeur 20.

Opérateur Description Exemple
+ La somme A + B = 30
− La soustraction A − B = 10
∗ La multiplication A ∗ B = 200
∕ La division B ∕ A = 2
% Modulo c’est le reste d’une division entier. B % A = 0
++ Opérateur d’incrémentation qui consiste à ajouter 1 à une variable. A++ = 11
— Opérateur de décrémentation qui consiste à soustraire 1 à une variable. A– = 9
Exemple

Essayez l’exemple suivant pour comprendre tous les opérateurs arithmétiques disponibles dans C

#include <stdio.h>

main() {

   int a = 21;
   int b = 10;
   int c ;

   c = a + b;
   printf("Ligne 1 - La valeur de c est %dn", c );
 
   c = a - b;
   printf("Ligne 2 - La valeur de c est %dn", c );
 
   c = a * b;
   printf("Ligne 3 - La valeur de c est %dn", c );
 
   c = a / b;
   printf("Ligne 4 - La valeur de c est %dn", c );
 
   c = a % b;
   printf("Ligne 5 - La valeur de c est %dn", c );
 
   c = a++; 
   printf("Ligne 6 - La valeur de c est %dn", c );
 
   c = a--; 
   printf("Ligne 7 - La valeur de c est %dn", c );
}

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant

Ligne 1 - La valeur de c est 31
Ligne 2 - La valeur de c est 11
Ligne 3 - La valeur de c est 210
Ligne 4 - La valeur de c est 2
Ligne 5 - La valeur de c est 1
Ligne 6 - La valeur de c est 21
Ligne 7 - La valeur de c est 22

 
[wx_adsense]  

Opérateurs relationnels

Le tableau suivant montre tous les opérateurs relationnels supportés par C. Supposons que la variable A contenant la valeur 10 et la variable B contenant la valeur 20 donc

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

Exemple
Essayez l’exemple suivant pour comprendre tous les opérateurs relationnels disponibles en C

#include &lt;stdio.h&gt;

main() {

   int A = 21;
   int B = 10;

   if( A == B ) {
      printf("Ligne 1 - A est egale de Bn" );
   }
   else {
      printf("Ligne 1 - A est different de Bn" );
   }
 
   if ( A < B ) {
      printf("Ligne 2 - A est inferieur de Bn" );
   }
   else {
      printf("Ligne 2 - A n est pas inferieur de Bn" );
   }
 
   if ( A > B ) {
      printf("Ligne 3 - A est superieur de Bn" );
   }
   else {
      printf("Ligne 3 - A est non superieur de Bn" );
   }
   
   /* On Change la valeur de A et B */
   A = 5;
   B = 20;
 
   if ( A <= B ) {
      printf("Ligne 4 - A est inferieur ou egal de Bn" );
   }
 
   if ( B >= A ) {
      printf("Ligne 5 - B est superieur ou egal de An" );
   }
} 

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant

Ligne 1 - A different de B
Ligne 2 - A n est pas inferieur de B
Ligne 3 - A est superieur de B
Ligne 4 - A est inferieur ou egal de B
Ligne 5 - B est superieur ou egal de A
Opérateurs logiques

Le tableau suivant montre tous les opérateurs logiques pris en charge par le langage C. Supposons que la variable A contenant la valeur 1 et la variable B contenant la valeur 0.

Opérateur Description Exemple
&& Opérateur logique AND. Si les deux opérandes ne sont pas égaux à zéro, la condition devient vraie. (A && B) est faux.
|| Opérateur logique OR. Si l’un des deux opérandes est non nul, la condition devient vraie. (A || B) est vrai.
! Opérateur logique NOT. Il est utilisé pour inverser l’état logique de son opérande. Si une condition est vraie, l’opérateur NOT le rendra faux. !(A && B) est vrai.

Exemple
Essayez l’exemple suivant pour comprendre tous les opérateurs logiques disponibles dans C

#include &lt;stdio.h&gt;

main() {

   int A = 5;
   int B = 20;

   if ( A && B ) {
      printf("Line 1 - La condition est vraien" );
   }
 
   if ( A || B ) {
      printf("Line 2 - La condition est vraien" );
   }
   
   /* On Change la valeur de a et b */
   A = 0;
   B = 10;
 
   if ( A && B ) {
      printf("Line 3 - La condition est vraien" );
   }
   else {
      printf("Line 3 - La condition n'est pas vraien" );
   }
 
   if ( !(A && B) ) {
      printf("Line 4 - La condition est vraien" );
   }
 
}

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant

Ligne 1 - La condition est vraie
Ligne 2 - La condition est vraie
Ligne 3 - La condition n'est pas vraie
Ligne 4 - La condition est vraie

 
[wx_adsense]  

Opérateurs bit à bit

L’opérateur bit à bit fonctionne sur les bits et exécute l’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 comme suit –

A = 0011 1100

B = 0000 1101

—————–

A & B = 0000 1100

A | B = 0011 1101

A ^ B = 0011 0001

~ A = 1100 0011

Essayez l’exemple suivant pour comprendre tous les opérateurs bit à bit disponibles dans C

#include &lt;stdio.h&gt;

main() {

   unsigned int a = 60; /* 60 = 0011 1100 */  
   unsigned int b = 13; /* 13 = 0000 1101 */
   int c = 0;           

   c = a & b;       /* 12 = 0000 1100 */ 
   printf("Ligne 1 - Valeur de c est %dn", c );

   c = a | b;       /* 61 = 0011 1101 */
   printf("Ligne 2 - Valeur de c est %dn", c );

   c = a ^ b;       /* 49 = 0011 0001 */
   printf("Ligne 3 - Valeur de c est %dn", c );

   c = ~a;          /*-61 = 1100 0011 */
   printf("Ligne 4 - Valeur de c est %dn", c );

   c = a << 2;     /* 240 = 1111 0000 */
   printf("Ligne 5 - Valeur de c est %dn", c );

   c = a >> 2;     /* 15 = 0000 1111 */
   printf("Ligne 6 - Valeur de c est %dn", c );
}

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant

Ligne 1 - La valeur de c est 12
Ligne 2 - La valeur de c est 61
Ligne 3 - La valeur de c est 49
Ligne 4 - La valeur de c est -61
Ligne 5 - La valeur de c est 240
Ligne 6 - La valeur de c est 15
Opérateurs d’affectation

Le tableau suivant représente les opérateurs d’affectation pris en charge par le langage C

Opérateur Description Exemple
= Opérateur d’affectation simple. Affecte les valeurs des opérandes de droite à l’opérande de gauche C = A + B assignera la valeur de A + B à C
+= Il ajoute l’opérande droit à l’opérande gauche et affecte le résultat à l’opérande gauche. C += A est équivalent à C = C + A
-= Il soustrait l’opérande droit de l’opérande gauche et affecte le résultat à l’opérande gauche. C -= A est équivalent à C = C – A
*= Il multiplie l’opérande droit par l’opérande gauche et attribue le résultat à l’opérande gauche. C *= A est équivalent à C = C * A
/= Il 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
%= Il prend le modulo en utilisant deux opérandes et attribue le résultat à l’opérande gauche. C %= A est équivalent à C = C % A
<<= Opérateur de décalage à gauche. C <<= 2 est identique à C = C << 2
>>= Opérateur de décalage à droite C >>= 2 est identique à C = C >> 2
&= Opérateur bit à bit. C &= 2 est identique à C = C & 2
^= Opérateur OU exclusif bit à bit. C ^= 2 est identique à C = C ^ 2
|= Opérateur OU inclusive bit à bit. C |= 2 est identique à C = C | 2

Exemple
Essayez l’exemple suivant pour comprendre tous les opérateurs d’affectation disponibles en C

#include &lt;stdio.h&gt;

main() {

   int a = 21;
   int c ;

   c =  a;
   printf("Ligne 1 - Exemple de l operateur  = , Value of c = %dn", c );

   c +=  a;
   printf("Ligne 2 - Exemple de l operateur  +=, Valeur de c = %dn", c );

   c -=  a;
   printf("Ligne 3 - Exemple de l operateur  -=, Valeur de c = %dn", c );

   c *=  a;
   printf("Ligne 4 - Exemple de l operateur  *=, Valeur de c = %dn", c );

   c /=  a;
   printf("Ligne 5 - Exemple de l operateur  /= , Valeur de c = %dn", c );

   c  = 200;
   c %=  a;
   printf("Ligne 6 - Exemple de l operateur  %=, Valeur de c = %dn", c );

   c <<=  2;
   printf("Ligne 7 - Exemple de l operateur  <<= , Valeur de c = %dn", c );

   c >>=  2;
   printf("Ligne 8 - Exemple de l operateur  >>=, Valeur de c = %dn", c );

   c &=  2;
   printf("Ligne 9 - Exemple de l operateur  &=, Valeur de c = %dn", c );

   c ^=  2;
   printf("Ligne 10 - Exemple de l operateur  ^=, Valeur de c = %dn", c );

   c |=  2;
   printf("Ligne 11 - Exemple de l operateur  |=, Valeur de c = %dn", c );

}

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant

Ligne 1 -  Exemple de l operateur =, valeur de c = 21
Ligne 2 -  Exemple de l operateur + =, valeur de c = 42
Ligne 3 -  Exemple de l operateur - =, valeur de c = 21
Ligne 4 -  Exemple de l operateur * =, valeur de c = 441
Ligne 5 -  Exemple de l operateur / =, valeur de c = 21
Ligne 6 -  Exemple de l operateur % =, valeur de c = 11
Ligne 7 -  Exemple de l operateur << =, valeur de c = 44
Ligne 8 -  Exemple de l operateur >> =, valeur de c = 11
Ligne 9 -  Exemple de l operateur & =, valeur de c = 2
Ligne 10 - Exemple de l operateur ^ =, valeur de c = 0
Ligne 11 - Exemple de l operateur | =, valeur de c = 2

 
[wx_adsense]  

Opérateurs sizeof et ternaire

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

Opérateur Description Exemple
sizeof() Renvoie la taille d’une variable. sizeof(a), (a doit être un entier), si le cas il retournera 4.
& Renvoie l’adresse d’une variable. &a; Renvoie l’adresse de la variable a.
* Pointeur sur une variable. *a;
? : Expression conditionnelle. If Condition est vraie ? donc la valeur X : sinon la valeur Y

Essayez l’exemple suivant pour comprendre tous les opérateurs divers disponibles en C

#include &lt;stdio.h&gt;

main() {

   int a = 4;
   short b;
   double c;
   int* ptr;

   /* Exemple de taille de l operateur sizeof */
   printf("Ligne 1 - Taille de la variable a= %dn", sizeof(a) );
   printf("Ligne 2 - Taille de la variable b = %dn", sizeof(b) );
   printf("Ligne 3 - Taille de la variable c= %dn", sizeof(c) );

   /*  Exemple de l'operateur & et l operateur *  */ 
   ptr = &a; /* 'Ptr' contient maintenant l'adresse de 'a' */
   printf("valeur de a est  %dn", a);
   printf("*ptr est %d.n", *ptr);

   /* Exemple de l operateur ternaire */
   a = 10;
   b = (a == 1) ? 20: 30;
   printf( "La valeur de b est %dn", b );

   b = (a == 10) ? 20: 30;
   printf( "La valeur de b est %dn", b );
}

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant

Ligne 1 - Taille de la variable a = 4
Ligne 2 - Taille de la variable b = 2
Ligne 3 - Taille de la variable c = 8
Valeur de a est 4
* Ptr est 4.
La valeur de b est 30
La valeur de b est 20

 
[wx_amazon]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *