1 of 15

Expression et Opérateurs

2 of 15

Expressions et opérateurs

  • Une expression peut être une valeur, une variable ou une opération constituée de variables reliées par des opérateurs
    • exemples: 1, b, a*2, a+ 3*b-c, …

  • L'évaluation de l'expression fournit une valeur unique qui est le résultat de l'opération

  • Les opérateurs dépendent du type de l'opération, ils peuvent être :

    • des opérateurs arithmétiques: +, -, *, /, % (modulo), ^ (puissance)
    • des opérateurs logiques: NON, OU, ET
    • des opérateurs relationnels: =, , <, >, <=, >=, <> ou !=
    • des opérateurs sur les chaînes: & (concaténation)

  • Une expression est évaluée de gauche à droite mais en tenant compte de priorités

MIPC

2

2019/2020

3 of 15

Priorité des opérateurs

  • Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de priorité est le suivant (du plus prioritaire au moins prioritaire) :

    • ^ : (élévation à la puissance)
    • * , / (multiplication, division)
    • % (modulo)
    • + , - (addition, soustraction)

exemple: 2 + 3 * 7 vaut 23

  • En cas de besoin (ou de doute), on utilise les parenthèses pour indiquer les opérations à effectuer en priorité
  • exemple: (2 + 3) * 7 vaut 35

MIPC

3

2019/2020

4 of 15

Instructions, Expressions et Opérateurs

  • Les instructions :
    • Une instruction représente une tâche à accomplir par l’ordinateur. En langage C, on écrit une instruction par ligne et elle se termine par un point virgule( à l’exception de #define et #include). Par exemple:

x=2+3;

est une instruction d’affectation. Elle demande à l’ordinateur

d’ajouter 2 et 3 et d’attribuer le résultat à la

variable x.

    • Les blocs:
      • Un bloc (ou instructions composées) est un groupe d’instructions entre accolades:

MIPC

4

2019/2020

La syntaxe du langage C

{

printf("Hello");

printf("world!");

{printf("Hello");

printf("world!");

5 of 15

Instructions, Expressions et Opérateurs

  • Les expressions:

Une expression est une combinaison d’opérateurs et d’opérandes(variables, constantes). Autrement, tout ce qui représente une valeur numérique. Une expression génère toujours un résultat d’un type bien défini qu’on appellera le type de l’expression.

    • Les expressions Simples
      • L’expression simple est constituée d’une seule variable, d’une constante. Par exemple:
        • PI //constante dont la valeur est définie par #define
        • Taux //variable
    • Les expressions complexes
      • Les expressions complexes sont constituées d’expressions plus simples avec des opérateurs. Par exemple:
        • 2+8
        • 8+(5*taux)+(taux*taux)/cout

MIPC

5

2019/2020

La syntaxe du langage C

6 of 15

Instructions, Expressions et Opérateurs

  • Les opérateurs: opérateur d’affectation
    • L’opérateur d’affectation est le signe(=). Dans le programme C : x=y;

ne signifie pas ‘x égal y’. Elle indique à l’ordinateur ‘d’affecter la valeur de y à x’. Cette instruction doit être composée d’une expression à droite du signe égale, et d’un nom de variable à gauche de ce signe:

variable=expression;

    • Exemple:
      • x=6+(y=4+5);
      • a=b=2;

MIPC

6

2019/2020

La syntaxe du langage C

7 of 15

Instructions, Expressions et Opérateurs

  • Les opérateurs: opérateur d’affectation
    • Opération et affectation combinées op=

var += exp ; équivalent à var = var + (exp) ;

var -= exp ; var = var - (exp) ;

var *= exp ; var = var * (exp) ;

var /= exp ; var = var / (exp) ;

var %= exp ; var = var % (exp) ;

    • Attention :

pas d’espace entre l’opérateur op et le égal =,

x *= y+1 est équivalent à x = x*(y+1) et pas x = x*y+1.

MIPC

7

2019/2020

La syntaxe du langage C

8 of 15

Instructions, Expressions et Opérateurs

  • Opérateurs arithmétiques

MIPC

8

2019/2020

La syntaxe du langage C

9 of 15

Instructions, Expressions et Opérateurs

  • Opérateurs arithmétiques
    • Remarques :
      • Les opérandes de ces opérateurs arithmétiques peuvent appartenir à tout type arithmétique seul l’opérateur % requiert des types entiers.
      • Le résultat d’une division d’entiers est aussi un entier, Exemple :
        • 6 / 4 // Resultat: 1
        • 6 % 4 // Resultat: 2
        • 6.0 / 4.0 // Resultat: 1.5

MIPC

9

2019/2020

La syntaxe du langage C

10 of 15

Instructions, Expressions et Opérateurs

  • Opérateurs arithmétiques
    • Remarques
      • Les opérateurs unaires opèrent sur une seule variable ou opérande.
      • Concernant l’incrémentation pré/postfixe, voici un petit exemple: Supposons que la valeur de N soit égale à 3 :
        • Incrémentation postfixe : X = N++ ;

Résultat : N = 4 et X = 3

        • Incrémentation préfixe : X = ++N ;

Résultat : N = 4 et X = 4

        • Décrémentation postfixe : X = N-- ;

Résultat : N = 2 et X = 3

        • Décrémentation préfixe : X = --N ;

Résultat : N = 2 et X = 2

MIPC

10

2019/2020

La syntaxe du langage C

11 of 15

Instructions, Expressions et Opérateurs

  • Opérateurs de comparaison

    • Toute comparaison est une expression de type int qui renvoie la valeur 0 (faux) ou 1 (vraie). Il faut que les opérandes soient du même type arithmétique (ou des pointeurs sur des objets de même type).
    • Attention : il ne faut pas confondre l’opérateur d’égalité (==) avec celui d’affectation (=).
    • Les différents opérateurs de comparaison sont détaillés dans le tableau ci-dessous.

MIPC

11

2019/2020

La syntaxe du langage C

12 of 15

Instructions, Expressions et Opérateurs

  • Opérateurs de comparaison

MIPC

12

2019/2020

La syntaxe du langage C

13 of 15

Instructions, Expressions et Opérateurs

  • Opérateurs de comparaison

#include <stdio.h>

main ()

{

int x=14, y=1; // x est différent de y

if (x = y) //erreur!!! il faudrait écrire ’if (x == y)’

printf("x est égal à y (%i=%i)\n",x,y);

else

printf("x est différent de y (%i!=%i)\n",x,y);

}

MIPC

13

2019/2020

La syntaxe du langage C

14 of 15

Instructions, Expressions et Opérateurs

  • Opérateurs logiques

Les opérateurs logiques, permettent de combiner le résultat de plusieurs expressions de comparaison en une seule expression logique. Les opérandes des opérateurs logiques peuvent être n’importe quel scalaire. Toute valeur différente de 0 est interprétée comme vraie (et 0 correspond à ’faux’). Comme pour les expressions de comparaisons les expressions logiques renvoient une valeur

entière (0 =faux ; 1=vraie).

Remarque :

les opérateurs && et || évaluent les opérandes de gauche à droite et le résultat est connu dès l’opérande de gauche. Ainsi, l’opérande de droite n’est évaluée que si celle de gauche est vraie dans le cas de l’opérateur && (respectivement fausse dans le cas de l’opérateur ||).

Exemple:

(i < max) && (f(14) == 1), la fonction f n’est appelée que si i < max.

MIPC

14

2019/2020

La syntaxe du langage C

15 of 15

Instructions, Expressions et Opérateurs

  • Opérateurs logiques

  • Exemples
    • L’expression : 32 && 40 vaut 1
    • L’expression : !65.34 vaut 0
    • L’expression : !!0 vaut 0

MIPC

15

2019/2020

La syntaxe du langage C