Section courante

A propos

Section administrative du site

Les opérateurs sont le fondement même du traitement des opérations mathématique et comparatif de n'importe quel langage, le C ne fait pas exception. En langage de programmation C, par contre, les opérateurs sont essentiellement centrés sur les opérations mathématiques sur des nombres entiers ou réels. Il faut également utiliser des opérateurs pour la manipulation des pointeurs, le décalage de bits, certains types de comparaison,...

Les opérateurs de type entier

Opérateur Description
== Comparaison d'un égalité
!= Comparaison d'une différence
> Comparaison de plus grand que
>= Comparaison de plus grand ou égal que
< Comparaison de plus petit que
<= Comparaison de plus petit ou égal que
+ Effectue une addition
- Effectue une soustraction
* Effectue une multiplication
/ Effectue une division
% Effectue le reste d'une division (modulo)
++ Effectue une incrémentation
-- Effectue une décrémentation
<< Effectue un décalage à gauche
>> Effectue un décalage à droite
! Effectue une «négation binaire»
& Effectue un «Et binaire»
| Effectue un «Ou binaire»
^ Effectue un «Ou exclusif binaire»
+= Affectation de l'entier par une addition
-= Affectation de l'entier par une soustraction
*= Affectation de l'entier par une multiplication
/= Affectation de l'entier par une division
<<= Affectation de l'entier par un décalage à gauche
>>= Affectation de l'entier par un décalage à droite
%= Affectation de l'entier par un reste d'une division (modulo)
&= Affectation de l'entier par un «Et binaire»
|= Affectation de l'entier par un «Ou binaire»
^= Affectation de l'entier par un «Ou exclusif binaire»

Les opérateurs de type réel (à virgule flottante)

Opérateur Description
== Comparaison d'un égalité
!= Comparaison d'une différence
> Comparaison de plus grand que
>= Comparaison de plus grand ou égal que
< Comparaison de plus petit que
<= Comparaison de plus petit ou égal que
+ Effectue une addition
- Effectue une soustraction
* Effectue une multiplication
/ Effectue une division
% Effectue le reste d'une division (modulo)
++ Effectue une incrémentation
-- Effectue une décrémentation
+= Affectation de l'entier par une addition
-= Affectation de l'entier par une soustraction
*= Affectation de l'entier par une multiplication
/= Affectation de l'entier par une division
%= Affectation de l'entier par un reste d'une division (modulo)

Les opérateurs de type booléen

Opérateur Description
== Comparaison d'un égalité
!= Comparaison d'une différence
! Effectue une négation
& Effectue un «Et binaire»
| Effectue un «Ou binaire»
^ Effectue un «Ou exclusif binaire»
&& Effectue un «Et logique
|| Effectue un «Ou logique»

Les priorités d'opération

Opérateur Priorité
() [] Premier
-- ++ ! ~ - Deuxième
* / % Troisième
+ - Quatrième
<< >> Cinquième
< <= >= > Sixième
== != Septième
& Huitième
^ Neuvième
| Dixième
&& || Onzième
? : (opérateur ternaire) Douzième
+ = += -= *= /= %= <<= >>= &= ^= |= Treizième

L'associativité des opérateurs

Opérateur Parité Associativité
( )   gauche vers la droite
() [] . ->   gauche vers la droite
! unaire droite vers la gauche
~ unaire droite vers la gauche
++ -- unaire droite vers la gauche
- unaire droite vers la gauche
(type) unaire droite vers la gauche
* unaire droite vers la gauche
& unaire droite vers la gauche
sizeof unaire droite vers la gauche
* / % binaire gauche vers la droite
+ - binaire gauche vers la droite
>> << binaire gauche vers la droite
< <= < <= binaire gauche vers la droite
== != binaire gauche vers la droite
& binaire gauche vers la droite
^ binaire gauche vers la droite
| binaire gauche vers la droite
&& binaire gauche vers la droite
|| binaire gauche vers la droite
? : binaire droite vers la gauche
= += -= *= /= %= ^= &= |= >>= <<= binaire droite vers la gauche
, binaire gauche vers la droite

Remarques

Exemple

Voici un exemple montrant une utilisation de ces opérandes :

Essayer maintenant !
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <math.h>
  4.  
  5. #define false 1 == 0
  6. #define true 1 == 1
  7.  
  8. double round(double value) {
  9.      return floor(value + 0.5);
  10. }
  11.  
  12. int main()
  13. {
  14.     int a = 1;
  15.     long b = 2;
  16.     unsigned char c = 3;
  17.     int c_ = -3;
  18.     char S[11] = "Gladir";
  19.     strcat(S,".com");
  20.  
  21.     printf("false == 0 : ");
  22.     if((false?1:0) == 0) puts("égale");
  23.                     else puts("pas égale");
  24.     printf("1 + 1 : %i\n", 1 + 1);
  25.     printf("a - b : %i\n", (int) (a - b));
  26.     printf("a * b * 20 : %i\n", (int) (a * b * 20));
  27.     printf("2 ^ 4 : %i\n", (int) round(pow(2,4)));
  28.     puts(S);
  29.     return 0;
  30. }

on obtiendra le résultat suivant :

false == 0 : égale
1 + 1 : 2
a - b : -1
a * b * 20 : 40
2 ^ 4 : 16
Gladir.com

Voir également

Articles - Table de vérité

Dernière mise à jour : Mardi, le 28 juillet 2015