Vous êtes sur la page 1sur 144

L ABORATOIRE D ’I NFORMATIQUE , R ÉSEAUX T ÉLÉCOMS (LIRT)

É COLE S UPÉRIEURE P OLYTECHNIQUE (ESP)

Tour d’horizon du Langage C

Pr. Gervais Mendy


gervais.mendy@esp.sn / gervais.mendy@ucad.edu.sn

25 janvier 2020
Plan du chapitre

Introduction Générale au Langage C

Les variables

Instructions, Expressions et Opérateurs


2 on 51 
Introduction Générale au Langage C

Plan du chapitre

Introduction Générale au Langage C

Les variables

Instructions, Expressions et Opérateurs


3 on 51 
Introduction Générale au Langage C

Cycle de développement d’un programme C


Cycle d’un programme C

Les différentes étapes de développement d’un programme C sont :

 la création du code source,


4 on 51 
Introduction Générale au Langage C

Cycle de développement d’un programme C


Cycle d’un programme C

Les différentes étapes de développement d’un programme C sont :

 la création du code source,

 la compilation,


4 on 51 
Introduction Générale au Langage C

Cycle de développement d’un programme C


Cycle d’un programme C

Les différentes étapes de développement d’un programme C sont :

 la création du code source,

 la compilation,

 la création du fichier exécutable.


4 on 51 
Introduction Générale au Langage C

Cycle de développement d’un programme C


Création du code source
 Il s’agit de la phase de saisie, éventuellement de modification

du texte du programme.


5 on 51 
Introduction Générale au Langage C

Cycle de développement d’un programme C


Création du code source
 Il s’agit de la phase de saisie, éventuellement de modification

du texte du programme.
 Le texte saisi est constitué d’une série de commandes et de
déclarations et est appelé code source.


5 on 51 
Introduction Générale au Langage C

Cycle de développement d’un programme C


Création du code source
 Il s’agit de la phase de saisie, éventuellement de modification

du texte du programme.
 Le texte saisi est constitué d’une série de commandes et de
déclarations et est appelé code source.
 C’est la première étape du développement ; le code source est
créé à l’aide d’un éditeur.


5 on 51 
Introduction Générale au Langage C

Cycle de développement d’un programme C


Création du code source
 Il s’agit de la phase de saisie, éventuellement de modification

du texte du programme.
 Le texte saisi est constitué d’une série de commandes et de
déclarations et est appelé code source.
 C’est la première étape du développement ; le code source est
créé à l’aide d’un éditeur.
 # include <stdio.h>
main( )
{
printf ("Le langage C vous souhaite la bienvenue") ;
}


5 on 51 
Introduction Générale au Langage C

Cycle de développement d’un programme C


Compilation du code source

 L’ordinateur ne peut pas comprendre le code source C.


6 on 51 
Introduction Générale au Langage C

Cycle de développement d’un programme C


Compilation du code source

 L’ordinateur ne peut pas comprendre le code source C.

 Il ne comprend que des instructions binaires (langage


machine).


6 on 51 
Introduction Générale au Langage C

Cycle de développement d’un programme C


Compilation du code source

 L’ordinateur ne peut pas comprendre le code source C.

 Il ne comprend que des instructions binaires (langage


machine).

 Le code source devra alors être transmis au compilateur qui le


transforme en langage machine. On parle de compilation.


6 on 51 
Introduction Générale au Langage C

Cycle de développement d’un programme C


Compilation du code source

 L’ordinateur ne peut pas comprendre le code source C.

 Il ne comprend que des instructions binaires (langage


machine).

 Le code source devra alors être transmis au compilateur qui le


transforme en langage machine. On parle de compilation.

 Le résultat de la compilation est l’obtention d’un code objet.


6 on 51 
Introduction Générale au Langage C

Cycle de développement d’un programme C


Compilation du code source

 L’ordinateur ne peut pas comprendre le code source C.

 Il ne comprend que des instructions binaires (langage


machine).

 Le code source devra alors être transmis au compilateur qui le


transforme en langage machine. On parle de compilation.

 Le résultat de la compilation est l’obtention d’un code objet.

 Le code objet contiendra les mêmes instructions que le code


source.

6 on 51 
Introduction Générale au Langage C

Cycle de développement d’un programme C


Création du fichier exécutable
 Le fichier objet n’est pas directement exécutable ; son contenu

n’est pas complet.


7 on 51 
Introduction Générale au Langage C

Cycle de développement d’un programme C


Création du fichier exécutable
 Le fichier objet n’est pas directement exécutable ; son contenu

n’est pas complet.


 On le complète par l’incorporation des modules objets des
routines et fonctions prédéfinies que le programme utilise.


7 on 51 
Introduction Générale au Langage C

Cycle de développement d’un programme C


Création du fichier exécutable
 Le fichier objet n’est pas directement exécutable ; son contenu

n’est pas complet.


 On le complète par l’incorporation des modules objets des
routines et fonctions prédéfinies que le programme utilise.
 Un compilateur C dispose de routines ou fonctions telle que
printf ( ), réalisant rapidement les opérations les plus
fréquentes.


7 on 51 
Introduction Générale au Langage C

Cycle de développement d’un programme C


Création du fichier exécutable
 Le fichier objet n’est pas directement exécutable ; son contenu

n’est pas complet.


 On le complète par l’incorporation des modules objets des
routines et fonctions prédéfinies que le programme utilise.
 Un compilateur C dispose de routines ou fonctions telle que
printf ( ), réalisant rapidement les opérations les plus
fréquentes.
 L’opération d’incorporation est réalisée par un programme dit
de chaînage (linker) ou d’édition des liens, qui combine les
instructions de programmes présentes dans le fichier objet
avec les routines fournies par le compilateur, pour aboutir enfin
 au code exécutable.
7 on 51 
Introduction Générale au Langage C

Structure d’un programme C


1: /* Calcul de la somme de nombres entiers */
2: # include <stdio.h>
3: int a, b, c ;
4: int addition (int x, int y) ;
5: main ( )
6: {
7: /* Lecture du premier nombre */
8: printf (" Entrer un nombre compris entre 0 et 50") ;
9: scanf("%d", &a) ;
10 : /* Lecture du second nombre */
11 : printf (" Entrer un nombre compris entre 1 et 51") ;
12 : scanf ("%d", &b) ;
13 : /* Calcul de la somme et affichage du résultat */
14 : c = addition(a, b) ;
15 : printf ("\n %d plus %d = %d ", a, b, c) ;
16 : return 0 ; /* avec ou sans*/
17 : }
18 : /* la fonction renvoie la somme des deux arguments */
19 : int addition (int x , int y )
20 : {
21 : return (x + y) ;
22 : }


8 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
Appel d’un fichier # include

 L’instruction d’appel (directive) # include indique au compilateur


C qu’il doit inclure le contenu d’un fichier dans le programme
pendant la compilation.


9 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
Appel d’un fichier # include

 L’instruction d’appel (directive) # include indique au compilateur


C qu’il doit inclure le contenu d’un fichier dans le programme
pendant la compilation.

 Ce fichier inclus (fichier en-tête) contient des informations


destinées au programme ou au compilateur.


9 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
Appel d’un fichier # include

 L’instruction d’appel (directive) # include indique au compilateur


C qu’il doit inclure le contenu d’un fichier dans le programme
pendant la compilation.

 Ce fichier inclus (fichier en-tête) contient des informations


destinées au programme ou au compilateur.

 Ces fichiers inclus, livrés avec le compilateur, ne sont pas à


modifier, et ont tous une extension .h


9 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
La fonction main ( )

 Dans les deux exemples donnés, on remarque la présence de


la fonction main ( ) (principale) qui est le seul bloc obligatoire
d’un programme C.


10 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
La fonction main ( )

 Dans les deux exemples donnés, on remarque la présence de


la fonction main ( ) (principale) qui est le seul bloc obligatoire
d’un programme C.

 L’exécution d’un programme C débute à la première instruction


de main ( ) et se termine avec la dernière instruction de cette
fonction.


10 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
La définition de variable

 Une variable est un nom donné à une zone mémoire.


11 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
La définition de variable

 Une variable est un nom donné à une zone mémoire.

 Le programme a besoin de mémoire pour stocker ses données


en cours d’exécution.


11 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
La définition de variable

 Une variable est un nom donné à une zone mémoire.

 Le programme a besoin de mémoire pour stocker ses données


en cours d’exécution.

 En C, une variable doit être déclarée avant d’être utilisée. La


déclaration d’une variable précise son nom et son type.


11 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
La définition de variable

 Une variable est un nom donné à une zone mémoire.

 Le programme a besoin de mémoire pour stocker ses données


en cours d’exécution.

 En C, une variable doit être déclarée avant d’être utilisée. La


déclaration d’une variable précise son nom et son type.

 Par exemple, la ligne 3 de l’exemple 2 définit trois variables


nommées a, b et c, qui contiendront chacune une variable
entière.


11 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
Déclaration de fonction

 La ligne 4 de l’exemple 2 est une déclaration de fonction de


nom addition et de paramètres entiers x et y .


12 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
Déclaration de fonction

 La ligne 4 de l’exemple 2 est une déclaration de fonction de


nom addition et de paramètres entiers x et y .

 Cette déclaration (et non la définition) de fonction doit


apparaître avant l’utilisation de la fonction.


12 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
Les instructions

 Elles constituent le travail réalisé par le programme.


13 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
Les instructions

 Elles constituent le travail réalisé par le programme.

 On peut avoir les instructions d’affichage, de lecture (au


clavier), d’appel de fonction, d’opérations mathématiques,
d’affectation etc.


13 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
Les instructions

 Elles constituent le travail réalisé par le programme.

 On peut avoir les instructions d’affichage, de lecture (au


clavier), d’appel de fonction, d’opérations mathématiques,
d’affectation etc.

 Chaque instruction occupe généralement (pas obligatoire) une


ligne et se termine par un point virgule.


13 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
L’instruction printf ( )
 C’est une fonction de bibliothèque qui envoie des informations
à l’écran.


14 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
L’instruction printf ( )
 C’est une fonction de bibliothèque qui envoie des informations
à l’écran.
 Elle peut être utilisée pour afficher n’importe quel message
texte qui sera encadré par des guillemets (double quottes).


14 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
L’instruction printf ( )
 C’est une fonction de bibliothèque qui envoie des informations
à l’écran.
 Elle peut être utilisée pour afficher n’importe quel message
texte qui sera encadré par des guillemets (double quottes).
 C’est le cas des lignes 8 et 11 par exemple.


14 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
L’instruction printf ( )
 C’est une fonction de bibliothèque qui envoie des informations
à l’écran.
 Elle peut être utilisée pour afficher n’importe quel message
texte qui sera encadré par des guillemets (double quottes).
 C’est le cas des lignes 8 et 11 par exemple.
 À la ligne 15, on a fourni à la fonction printf ( ) des arguments
de type entier dont les premiers sont les formats %d qui
précisent comment seront affichées les informations contenues
dans les variables entières a, b et c.


14 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
L’instruction printf ( ) suite

 %d indique que ce qui suit n’est pas du texte mais un code de


format qui précise qu’on affiche la valeur reçue en argument (ici
a, b et c).


15 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
L’instruction printf ( ) suite

 %d indique que ce qui suit n’est pas du texte mais un code de


format qui précise qu’on affiche la valeur reçue en argument (ici
a, b et c).

 Toujours à la ligne 15, on remarque \n le caractère de fin de


ligne qui provoque le passage à la ligne suivante.


15 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
L’instruction scanf ( )
 C’est une autre fonction de bibliothèque qui lit les données
entrées au clavier et les attribue à des variables du programme.


16 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
L’instruction scanf ( )
 C’est une autre fonction de bibliothèque qui lit les données
entrées au clavier et les attribue à des variables du programme.
 Dans l’exemple 2, on peut la retrouver aux lignes 9 et 12.


16 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
L’instruction scanf ( )
 C’est une autre fonction de bibliothèque qui lit les données
entrées au clavier et les attribue à des variables du programme.
 Dans l’exemple 2, on peut la retrouver aux lignes 9 et 12.
 La fonction scanf ( ) possède en argument un (code de) format
%d qui correspond à une valeur entière.


16 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
L’instruction scanf ( )
 C’est une autre fonction de bibliothèque qui lit les données
entrées au clavier et les attribue à des variables du programme.
 Dans l’exemple 2, on peut la retrouver aux lignes 9 et 12.
 La fonction scanf ( ) possède en argument un (code de) format
%d qui correspond à une valeur entière.
 L’argument &a indique à la fonction, l’adresse mémoire de
rangement de la valeur de a.


16 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
L’instruction scanf ( )
 C’est une autre fonction de bibliothèque qui lit les données
entrées au clavier et les attribue à des variables du programme.
 Dans l’exemple 2, on peut la retrouver aux lignes 9 et 12.
 La fonction scanf ( ) possède en argument un (code de) format
%d qui correspond à une valeur entière.
 L’argument &a indique à la fonction, l’adresse mémoire de
rangement de la valeur de a.
 Sans l’opérateur & (adresse de), les informations lues seront
rangées dans des emplacements aléatoires et aucune erreur
de compilation ne sera détectée.

16 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
L’instruction return

 Celle de la fonction addition ( ) renvoie le résultat de la somme


de x et y au programme appelant.


17 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
L’instruction return

 Celle de la fonction addition ( ) renvoie le résultat de la somme


de x et y au programme appelant.

 Celle de la fonction principale (main) ne retourne aucune


valeur ; elle peut être facultative.


17 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
La définition de fonction

 Une fonction est une portion de code indépendante qui effectue


une certaine tâche.


18 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
La définition de fonction

 Une fonction est une portion de code indépendante qui effectue


une certaine tâche.

 La fonction addition ( ) est une fonction utilisateur c’est-à-dire


écrite par le programmeur.


18 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
Les commentaires du programme

 /*... ... */ désigne un commentaire et est ignoré lors de la


compilation.


19 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
Les commentaires du programme

 /*... ... */ désigne un commentaire et est ignoré lors de la


compilation.

 On ne doit pas imbriquer les commentaires car cela peut


provoquer des erreurs de compilation.


19 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
Les accolades { }

 Les lignes de programme des fonctions en C sont encadrées


par des accolades.


20 on 51 
Introduction Générale au Langage C

Commentaires de l’exemple
Les accolades { }

 Les lignes de programme des fonctions en C sont encadrées


par des accolades.

 Tout bloc d’instructions doit aussi être entre accolades.


20 on 51 
Les variables

Plan du chapitre

Introduction Générale au Langage C

Les variables

Instructions, Expressions et Opérateurs


21 on 51 
Les variables

Noms de variables
Règle sur les noms de variables
 Le nom est formé d’une suite de caractères choisis parmi les
lettres et les chiffres


22 on 51 
Les variables

Noms de variables
Règle sur les noms de variables
 Le nom est formé d’une suite de caractères choisis parmi les
lettres et les chiffres
 Le premier caractère doit être une lettre ou le caractère
“souligné” ( _ )


22 on 51 
Les variables

Noms de variables
Règle sur les noms de variables
 Le nom est formé d’une suite de caractères choisis parmi les
lettres et les chiffres
 Le premier caractère doit être une lettre ou le caractère
“souligné” ( _ )
 Les majuscules ne sont pas équivalentes aux lettres
minuscules.


22 on 51 
Les variables

Noms de variables
Règle sur les noms de variables
 Le nom est formé d’une suite de caractères choisis parmi les
lettres et les chiffres
 Le premier caractère doit être une lettre ou le caractère
“souligné” ( _ )
 Les majuscules ne sont pas équivalentes aux lettres
minuscules.
 Ainsi taux et Taux ne représentent pas la même variable


22 on 51 
Les variables

Noms de variables
Règle sur les noms de variables
 Le nom est formé d’une suite de caractères choisis parmi les
lettres et les chiffres
 Le premier caractère doit être une lettre ou le caractère
“souligné” ( _ )
 Les majuscules ne sont pas équivalentes aux lettres
minuscules.
 Ainsi taux et Taux ne représentent pas la même variable
 Les mots clés (réservés au langage) ne peuvent pas être
utilisés comme de variables.


22 on 51 
Les variables

Mots clefs
Mots clés ou mots réservés

asm auto break case char const

continue default do double else enum

extern float for goto if int

long register return short signed sizeof

static struct switch typedef union unsigned

void volatile while


23 on 51 
Les variables

Les variables entières


Classification des types entiers
La classification des types entiers obéit à deux critères :
 Si on cherche à représenter un ensemble de nombres tous
positifs on pourra adopter un type non signé ; par contre si on
doit représenter un ensemble contenant des nombres positifs
et des nombres négatifs on devra utiliser un type signé.


24 on 51 
Les variables

Les variables entières


Classification des types entiers
La classification des types entiers obéit à deux critères :
 Si on cherche à représenter un ensemble de nombres tous
positifs on pourra adopter un type non signé ; par contre si on
doit représenter un ensemble contenant des nombres positifs
et des nombres négatifs on devra utiliser un type signé.

 Le deuxième critère de classification des données numériques


est la taille requise par leur représentation. Comme
précédemment, c’est un attribut d’un ensemble, et donc d’une
variable devant représenter tout élément de l’ensemble, non
d’une valeur particulière.

24 on 51 
Les variables

Classification des types entiers (suite)


Avec N chiffres binaires (ou bits) on peut représenter :
 soit les 2N nombres positifs 0, 1, . . . , 2N − 1 (cas non signé) ;


25 on 51 
Les variables

Classification des types entiers (suite)


Avec N chiffres binaires (ou bits) on peut représenter :
 soit les 2N nombres positifs 0, 1, . . . , 2N − 1 (cas non signé) ;
 soit les 2N nombres positifs et négatifs −2N−1 , . . . , 2N−1 − 1
(cas signé).


25 on 51 
Les variables

Classification des types entiers (suite)


Avec N chiffres binaires (ou bits) on peut représenter :
 soit les 2N nombres positifs 0, 1, . . . , 2N − 1 (cas non signé) ;
 soit les 2N nombres positifs et négatifs −2N−1 , . . . , 2N−1 − 1
(cas signé).
 unsigned short : N = 16 bits pour représenter un nombre entier
compris entre 0 et 65 535


25 on 51 
Les variables

Classification des types entiers (suite)


Avec N chiffres binaires (ou bits) on peut représenter :
 soit les 2N nombres positifs 0, 1, . . . , 2N − 1 (cas non signé) ;
 soit les 2N nombres positifs et négatifs −2N−1 , . . . , 2N−1 − 1
(cas signé).
 unsigned short : N = 16 bits pour représenter un nombre entier
compris entre 0 et 65 535
 short : N = 16 bits pour représenter un nombre entier compris
entre −32 768 et 32 767


25 on 51 
Les variables

Classification des types entiers (suite)


Avec N chiffres binaires (ou bits) on peut représenter :
 soit les 2N nombres positifs 0, 1, . . . , 2N − 1 (cas non signé) ;
 soit les 2N nombres positifs et négatifs −2N−1 , . . . , 2N−1 − 1
(cas signé).
 unsigned short : N = 16 bits pour représenter un nombre entier
compris entre 0 et 65 535
 short : N = 16 bits pour représenter un nombre entier compris
entre −32 768 et 32 767
 unsigned long : N = 32 bits pour représenter un nombre entier
entre 0 et 4 294 967 296


25 on 51 
Les variables

Classification des types entiers (suite)


Avec N chiffres binaires (ou bits) on peut représenter :
 soit les 2N nombres positifs 0, 1, . . . , 2N − 1 (cas non signé) ;
 soit les 2N nombres positifs et négatifs −2N−1 , . . . , 2N−1 − 1
(cas signé).
 unsigned short : N = 16 bits pour représenter un nombre entier
compris entre 0 et 65 535
 short : N = 16 bits pour représenter un nombre entier compris
entre −32 768 et 32 767
 unsigned long : N = 32 bits pour représenter un nombre entier
entre 0 et 4 294 967 296
 long : N = 32 bits pour représenter un entier entre
−2 147 483 648 et 2 147 483 647

25 on 51 
Les variables

Les variables entières


Type entier et classification
Type Mots-clés Nombre d’octets
Caractère char 1
Entier int 2
Entier court short 2
Entier long long 4
Caractère non signé unsigned char 1
Entier non signé unsigned int 2
Entier court non signé unsigned short 2
Entier long non signé unsigned long 4

26 on 51 
Les variables

Les variables réelles


Le type flottant
 Les variables à virgule flottante contiennent des valeurs
pouvant avoir des chiffres après la virgule (nombres réels).


27 on 51 
Les variables

Les variables réelles


Le type flottant
 Les variables à virgule flottante contiennent des valeurs
pouvant avoir des chiffres après la virgule (nombres réels).
 On distingue principalement trois (norme ANSI-American
National Standards Institute-) types flottants : float (simple
précision), double (double précision) et long double (précision
étendue).


27 on 51 
Les variables

Les variables réelles


Le type flottant
 Les variables à virgule flottante contiennent des valeurs
pouvant avoir des chiffres après la virgule (nombres réels).
 On distingue principalement trois (norme ANSI-American
National Standards Institute-) types flottants : float (simple
précision), double (double précision) et long double (précision
étendue).
 Typiquement, sur des systèmes de taille moyenne, un float
occupe 4 octets et un double 8, ce qui donne par exemple des
float allant de −1.2E − 38 à 3.4E + 38 avec 7 chiffres décimaux
significatifs, et des double allant de −2.2E − 308 à 1.4E + 308
avec au moins 15 chiffres décimaux significatifs.

27 on 51 
Les variables

Déclaration des variables


Syntaxe et exemples
 nom_type nom_variable;


28 on 51 
Les variables

Déclaration des variables


Syntaxe et exemples
 nom_type nom_variable;
 nom_type indique le type de la variable et doit faire partie des
mots-clés répertoriés.


28 on 51 
Les variables

Déclaration des variables


Syntaxe et exemples
 nom_type nom_variable;
 nom_type indique le type de la variable et doit faire partie des
mots-clés répertoriés.
 nom_variable est le nom de la variable déclarée.


28 on 51 
Les variables

Déclaration des variables


Syntaxe et exemples
 nom_type nom_variable;
 nom_type indique le type de la variable et doit faire partie des
mots-clés répertoriés.
 nom_variable est le nom de la variable déclarée.
 int nombre, prix ;


28 on 51 
Les variables

Déclaration des variables


Syntaxe et exemples
 nom_type nom_variable;
 nom_type indique le type de la variable et doit faire partie des
mots-clés répertoriés.
 nom_variable est le nom de la variable déclarée.
 int nombre, prix ;
 float taux, note, moyenne ;


28 on 51 
Les variables

Déclaration des variables


Syntaxe et exemples
 nom_type nom_variable;
 nom_type indique le type de la variable et doit faire partie des
mots-clés répertoriés.
 nom_variable est le nom de la variable déclarée.
 int nombre, prix ;
 float taux, note, moyenne ;
 Une déclaration de variable peut s’accompagner de
l’initialisation de la variable. Exemple : int nombre =10 ;


28 on 51 
Les variables

Constantes symboliques
Définition des constantes
 Le langage C offre deux possibilités de représentations des
constantes symboliques.


29 on 51 
Les variables

Constantes symboliques
Définition des constantes
 Le langage C offre deux possibilités de représentations des
constantes symboliques.
 l’ordre (directive) : #define


29 on 51 
Les variables

Constantes symboliques
Définition des constantes
 Le langage C offre deux possibilités de représentations des
constantes symboliques.
 l’ordre (directive) : #define
 le mot-clé : const


29 on 51 
Les variables

Constantes symboliques
Définition des constantes
 Le langage C offre deux possibilités de représentations des
constantes symboliques.
 l’ordre (directive) : #define
 le mot-clé : const
 Exemple 1 : #define PI 3.14159


29 on 51 
Les variables

Constantes symboliques
Définition des constantes
 Le langage C offre deux possibilités de représentations des
constantes symboliques.
 l’ordre (directive) : #define
 le mot-clé : const
 Exemple 1 : #define PI 3.14159
 Exemple 2 : const float pi = 3.14159 ;


29 on 51 
Instructions, Expressions et Opérateurs

Plan du chapitre

Introduction Générale au Langage C

Les variables

Instructions, Expressions et Opérateurs


30 on 51 
Instructions, Expressions et Opérateurs

Les instructions
Définition et exemples
 Une instruction représente une tâche à accomplir par
l’ordinateur. Elle s’écrit sur une ligne et se termine par un
point-virgule (à l’exception de #define et #include).


31 on 51 
Instructions, Expressions et Opérateurs

Les instructions
Définition et exemples
 Une instruction représente une tâche à accomplir par
l’ordinateur. Elle s’écrit sur une ligne et se termine par un
point-virgule (à l’exception de #define et #include).
 Affectation :
x = 2 + 3; (1)


31 on 51 
Instructions, Expressions et Opérateurs

Les instructions
Définition et exemples
 Une instruction représente une tâche à accomplir par
l’ordinateur. Elle s’écrit sur une ligne et se termine par un
point-virgule (à l’exception de #define et #include).
 Affectation :
x = 2 + 3; (1)
 Affichage :
printf(" Apprentissage") ;


31 on 51 
Instructions, Expressions et Opérateurs

Les instructions
Définition et exemples
 Une instruction représente une tâche à accomplir par
l’ordinateur. Elle s’écrit sur une ligne et se termine par un
point-virgule (à l’exception de #define et #include).
 Affectation :
x = 2 + 3; (1)
 Affichage :
printf(" Apprentissage") ;
 Saisie :
scanf("%d", &a) ;


31 on 51 
Instructions, Expressions et Opérateurs

Les expressions
Définition et exemples
 En langage C, on appelle expression tout ce qui représente
une valeur numérique.


32 on 51 
Instructions, Expressions et Opérateurs

Les expressions
Définition et exemples
 En langage C, on appelle expression tout ce qui représente
une valeur numérique.
 On distingue des expressions simples et des expressions
complexes.


32 on 51 
Instructions, Expressions et Opérateurs

Les expressions
Définition et exemples
 En langage C, on appelle expression tout ce qui représente
une valeur numérique.
 On distingue des expressions simples et des expressions
complexes.
 L’expresion la plus simple peut être constituée d’une seule
variable, d’une constante littérale ou d’une constante
symbolique.
Expression Description
PI Constante symbolique
 20 Constante littérale
taux variable
−2.51 Constante littérale

32 on 51 
Instructions, Expressions et Opérateurs

Les expressions
Exemple d’expresions complexes
 Les expression complexes sont constituées de plusieurs
expressions simples avec des opérateurs.


33 on 51 
Instructions, Expressions et Opérateurs

Les expressions
Exemple d’expresions complexes
 Les expression complexes sont constituées de plusieurs
expressions simples avec des opérateurs.
 1. 7 + 12 ; /* 7 et 12 sont 2 sous-expressions et + l’opérateur
d’addition*/
2. −2.51/16 + 5 ∗ taux ∗ taux/nombre est expression avec plusieurs
opérateurs. Son évaluation dépend de l’ordre dans lequel les
opérations sont effectuées et des priorités des opérateurs.


33 on 51 
Instructions, Expressions et Opérateurs

Les expressions
Exemple d’expresions complexes
 Les expression complexes sont constituées de plusieurs
expressions simples avec des opérateurs.
 1. 7 + 12 ; /* 7 et 12 sont 2 sous-expressions et + l’opérateur
d’addition*/
2. −2.51/16 + 5 ∗ taux ∗ taux/nombre est expression avec plusieurs
opérateurs. Son évaluation dépend de l’ordre dans lequel les
opérations sont effectuées et des priorités des opérateurs.

 Une instruction d’affectation est elle-même une expression.


Ainsi, on peut écrire :

y = x = a + b; ou x = 6 + (y = 4 + 5);

33 on 51 
Instructions, Expressions et Opérateurs

Les Opérateurs
Définition
 Un opérateur est un symbole qui décrit une opération ou une
action à effectuer sur une ou plusieurs opérandes.


34 on 51 
Instructions, Expressions et Opérateurs

Les Opérateurs
Définition
 Un opérateur est un symbole qui décrit une opération ou une
action à effectuer sur une ou plusieurs opérandes.
 En langage C, les opérandes sont toujours des expressions.


34 on 51 
Instructions, Expressions et Opérateurs

Les Opérateurs
Définition
 Un opérateur est un symbole qui décrit une opération ou une
action à effectuer sur une ou plusieurs opérandes.
 En langage C, les opérandes sont toujours des expressions.
 Les opérateurs seront toujours classées en quatre catégories :
1. l’opérateur d’affectation ;
2. les opérateurs mathématiques ;
3. les opérateurs relationnels (ou de comparaison) ;
4. les opérateurs logiques.


34 on 51 
Instructions, Expressions et Opérateurs

Les Opérateurs
L’opérateur d’affectation

C’est le signe égal (=).

variable = expression;


35 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs mathématiques


Les opérateurs unaires et les opérateurs binaires
 Les opérateurs mathématiques de C réalisent des opérations
mathématiques comme l’addition ou la soustraction. On en
distingue deux qui sont unaires et cinq sont binaires.


36 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs mathématiques


Les opérateurs unaires et les opérateurs binaires
 Les opérateurs mathématiques de C réalisent des opérations
mathématiques comme l’addition ou la soustraction. On en
distingue deux qui sont unaires et cinq sont binaires.
 les opérateurs unaires opèrent sur une seule valeur ou
opérande.
Opérateurs Symboles Opérations Exemples

Incrémentation ++ augmente de 1 la valeur de l’opérande ++x , x ++


Décrémentation −− diminue de 1 la valeur de l’opérande −−x , x −−


36 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs mathématiques


Les opérateurs unaires et les opérateurs binaires
 Les opérateurs mathématiques de C réalisent des opérations
mathématiques comme l’addition ou la soustraction. On en
distingue deux qui sont unaires et cinq sont binaires.
 les opérateurs unaires opèrent sur une seule valeur ou
opérande.
Opérateurs Symboles Opérations Exemples

Incrémentation ++ augmente de 1 la valeur de l’opérande ++x , x ++


Décrémentation −− diminue de 1 la valeur de l’opérande −−x , x −−

 Ces deux opérateurs ne peuvent être utilisées qu’avec des


variables.


36 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs mathématiques


Les opérateurs unaires et les opérateurs binaires
 Les opérateurs mathématiques de C réalisent des opérations
mathématiques comme l’addition ou la soustraction. On en
distingue deux qui sont unaires et cinq sont binaires.
 les opérateurs unaires opèrent sur une seule valeur ou
opérande.
Opérateurs Symboles Opérations Exemples

Incrémentation ++ augmente de 1 la valeur de l’opérande ++x , x ++


Décrémentation −− diminue de 1 la valeur de l’opérande −−x , x −−

 Ces deux opérateurs ne peuvent être utilisées qu’avec des


variables.
 Les instructions + + x; et − − y ; sont respectivement
équivalentes aux instructions suivantes : x = x + 1; et
 y = y − 1;
36 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs unaires


Modes prefix et postfix

 L’opérateur peut être placé en avant (mode préfix) ou après


(mode postfix) l’opérande.


37 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs unaires


Modes prefix et postfix

 L’opérateur peut être placé en avant (mode préfix) ou après


(mode postfix) l’opérande.

 En mode préfix, l’incrémentation ou la décrémentation sont


effectuées avant l’utilisation de l’opérande.


37 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs unaires


Modes prefix et postfix

 L’opérateur peut être placé en avant (mode préfix) ou après


(mode postfix) l’opérande.

 En mode préfix, l’incrémentation ou la décrémentation sont


effectuées avant l’utilisation de l’opérande.

 En mode postfix, les opérateurs d’incrémentation et de


décrémentation modifient l’opérande après son utilisation.


37 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs unaires


Ilustration des modes prefix et postfix


x = 90;
y = x + +;
Après ces 2 instructions, x a la valeur 91 et y la valeur 90


38 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs unaires


Ilustration des modes prefix et postfix


x = 90;
y = x + +;
Après ces 2 instructions, x a la valeur 91 et y la valeur 90

x = 90;
y = + + x;
Après ces 2 instructions, x a la valeur 91 et y la valeur 91


38 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs binaires


Tableau : opérateurs mathématiques binaires

Opérateurs Symboles Opérations Exemples

Addition + additionne 2 opérandes x +y

Soustraction − soustrait la valeur du 2nd opérande à celle du 1er x −y

Multiplication ∗ multiplie 2 opérandes x ∗y

Division / divise le 1er opérande par le 2nd x/y

Modulo % donne le reste de la division du 1er opérande par le 2nd x%y


39 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs binaires


Priorités (hierarchie) relatives
 Lorsque plusieurs opérateurs apparaissent dans une même
expression, il est important de savoir dans quel ordre les
opérations seront effectuées.


40 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs binaires


Priorités (hierarchie) relatives
 Lorsque plusieurs opérateurs apparaissent dans une même
expression, il est important de savoir dans quel ordre les
opérations seront effectuées.
 En langage C, comme dans les autres langages, les règles
sont souvent celles de l’Algèbre traditionnelle pour ce qui
concerne les opérateurs arithmétiques classiques.


40 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs binaires


Priorités (hierarchie) relatives
 Lorsque plusieurs opérateurs apparaissent dans une même
expression, il est important de savoir dans quel ordre les
opérations seront effectuées.
 En langage C, comme dans les autres langages, les règles
sont souvent celles de l’Algèbre traditionnelle pour ce qui
concerne les opérateurs arithmétiques classiques.
Opérateurs Niveau de Priorité par ordre décroissant
++, −− 1

∗, / , % 2
+, − 3

40 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs binaires


Priorités relatives et parenthésage
 Si une expression contient plusieurs opérateurs de même
niveau, les calculs s’effectuent de gauche à droite.


41 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs binaires


Priorités relatives et parenthésage
 Si une expression contient plusieurs opérateurs de même
niveau, les calculs s’effectuent de gauche à droite.
 Exemple :
x = 12%5 ∗ 2 ;
La valeur de x est 4.


41 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs binaires


Priorités relatives et parenthésage
 Si une expression contient plusieurs opérateurs de même
niveau, les calculs s’effectuent de gauche à droite.
 Exemple :
x = 12%5 ∗ 2 ;
La valeur de x est 4.
 Pour outrepasser ces règles de priorité, il faut utiliser les
parenthèses.


41 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs binaires


Priorités relatives et parenthésage
 Si une expression contient plusieurs opérateurs de même
niveau, les calculs s’effectuent de gauche à droite.
 Exemple :
x = 12%5 ∗ 2 ;
La valeur de x est 4.
 Pour outrepasser ces règles de priorité, il faut utiliser les
parenthèses.
 Une expression peut contenir des parenthèses multiples ou
imbriquées ; l’évaluation se fait de l’“intérieur” vers l’“extérieur”.

41 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs binaires


Priorités relatives et parenthésage : exemple

Expression : x = 25 − (2 ∗ (10 + (8/2)));

1. 25 − (2 ∗ (10 + 4))

2. 25 − (2 ∗ 14)

3. 25 − 28

Et enfin x vaut −3.


42 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs relationnels (ou de comparaison)


Tableau : Les opérateurs de comparaison
Ils sont utilisés pour comparer des expressions. Le résultat de la
comparaison vaut 1 si l’expression est vrai ou 0 sinon.

Opérateurs signification Exemples

< inférieur à x <y


<= inférieur ou égal à x <= y
> supérieur à x >y
>= supérieur ou égal à x >= y
== égal à x == y
6= différent x! = y


43 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs relationnels


Commentaires
 Les opérateurs de comparaison sont principalement utilisés
avec les instructions if et while.


44 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs relationnels


Commentaires
 Les opérateurs de comparaison sont principalement utilisés
avec les instructions if et while.
 L’erreur la plus courante avec les opérateurs de comparaison
est d’utiliser l’opérateur d’affectation (=) en lieu et place de
l’opérateur (==).


44 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs relationnels


Commentaires
 Les opérateurs de comparaison sont principalement utilisés
avec les instructions if et while.
 L’erreur la plus courante avec les opérateurs de comparaison
est d’utiliser l’opérateur d’affectation (=) en lieu et place de
l’opérateur (==).
 Les opérateurs de comparaison ont tous une priorité de
traitement inférieure à celle des opérateurs mathématiques.


44 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs relationnels


Commentaires
 Les opérateurs de comparaison sont principalement utilisés
avec les instructions if et while.
 L’erreur la plus courante avec les opérateurs de comparaison
est d’utiliser l’opérateur d’affectation (=) en lieu et place de
l’opérateur (==).
 Les opérateurs de comparaison ont tous une priorité de
traitement inférieure à celle des opérateurs mathématiques.
Opérateurs Ordre de priorité
 <, <=, >, >= 1
! =, == 2

44 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs logiques

 Le langage C dispose de trois opérateurs logiques classiques.


45 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs logiques

 Le langage C dispose de trois opérateurs logiques classiques.


Opérateurs Signification

&& et (conjonction)
|| ou (inclusif)
! non (négation


45 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs logiques

 Le langage C dispose de trois opérateurs logiques classiques.


Opérateurs Signification

&& et (conjonction)
|| ou (inclusif)
! non (négation
 L’opérateur ! a la même priorité que les opérateurs
mathématiques unaires ++ et −−.


45 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs logiques

 Le langage C dispose de trois opérateurs logiques classiques.


Opérateurs Signification

&& et (conjonction)
|| ou (inclusif)
! non (négation
 L’opérateur ! a la même priorité que les opérateurs
mathématiques unaires ++ et −−.
 Par contre, les opérateurs && et || seront traités après tous les
autres opérateurs mathématiques et de comparaison.


45 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs logiques

 Le langage C dispose de trois opérateurs logiques classiques.


Opérateurs Signification

&& et (conjonction)
|| ou (inclusif)
! non (négation
 L’opérateur ! a la même priorité que les opérateurs
mathématiques unaires ++ et −−.
 Par contre, les opérateurs && et || seront traités après tous les
autres opérateurs mathématiques et de comparaison.
 L’opérateur && a une priorité supérieure à celle de ||.

45 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs d’affectation composés


Description
 Ils permettent d’associer une opération mathématique binaire
avec une opération d’affectation.


46 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs d’affectation composés


Description
 Ils permettent d’associer une opération mathématique binaire
avec une opération d’affectation.
 x+ = 5; ⇐⇒ x = x + 5;


46 on 51 
Instructions, Expressions et Opérateurs

Les opérateurs d’affectation composés


Description
 Ils permettent d’associer une opération mathématique binaire
avec une opération d’affectation.
 x+ = 5; ⇐⇒ x = x + 5;
 syntaxe générale :
exp1 op = exp2 (2)
où op représente un opérateur binaire.

2 ⇐⇒ exp1 = exp1 op exp2


46 on 51 
Instructions, Expressions et Opérateurs

L’opérateur de condition
Opérateur ternaire

 L’opérateur de condition est le seul opérateur ternaire


c’est-à-dire qu’il prend 3 opérandes.


47 on 51 
Instructions, Expressions et Opérateurs

L’opérateur de condition
Opérateur ternaire

 L’opérateur de condition est le seul opérateur ternaire


c’est-à-dire qu’il prend 3 opérandes.

 syntaxe générale :

exp1 ? exp2 : exp3; (3)


47 on 51 
Instructions, Expressions et Opérateurs

L’opérateur de condition
Opérateur ternaire

 L’opérateur de condition est le seul opérateur ternaire


c’est-à-dire qu’il prend 3 opérandes.

 syntaxe générale :

exp1 ? exp2 : exp3; (3)

 (3) signifie que si exp1 est vraie (6= 0), alors l’expression
complète prendra la valeur de exp2, sinon l’expression
complète prendra la valeur de exp3

47 on 51 
Instructions, Expressions et Opérateurs

L’opérateur de condition
Exemple d’utilisation
1. x = y ? 1 : 100; signifie que x prend la valeur 1 si y est vraie
(= 1), sinon x prend la valeur 100.
2. z = (x > y ) ? x : y ; qui équivaut à
if (x > y )
z = x;
else
z = y;
3. printf(“la plus grande valeur est %d”, z = (x > y ) ? x : y ) ;


48 on 51 
Instructions, Expressions et Opérateurs

L’opérateur séquentiel : la virgule


Description
 Il permet de réaliser plusieurs calculs successifs au sein d’un
même expression.


49 on 51 
Instructions, Expressions et Opérateurs

L’opérateur séquentiel : la virgule


Description
 Il permet de réaliser plusieurs calculs successifs au sein d’un
même expression.
 Exemple : x = (a + +, a + b);


49 on 51 
Instructions, Expressions et Opérateurs

L’opérateur séquentiel : la virgule


Description
 Il permet de réaliser plusieurs calculs successifs au sein d’un
même expression.
 Exemple : x = (a + +, a + b);
 L’instruction précédente attribue la valeur de a + b à x, puis
incrémente a.


49 on 51 
Instructions, Expressions et Opérateurs

L’opérateur séquentiel : la virgule


Description
 Il permet de réaliser plusieurs calculs successifs au sein d’un
même expression.
 Exemple : x = (a + +, a + b);
 L’instruction précédente attribue la valeur de a + b à x, puis
incrémente a.
 Avec la virgule, on peut former une expression à partir de deux
sous-expressions et dont le résultat est le suivant :
1. Les 2 sous-expressions sont évaluées en commençant par celle
de gauche
2. L’expression enrière prend la valeur de l’expression de droite.


49 on 51 
Instructions, Expressions et Opérateurs

L’opérateur séquentiel : la virgule


Description
 Il permet de réaliser plusieurs calculs successifs au sein d’un
même expression.
 Exemple : x = (a + +, a + b);
 L’instruction précédente attribue la valeur de a + b à x, puis
incrémente a.
 Avec la virgule, on peut former une expression à partir de deux
sous-expressions et dont le résultat est le suivant :
1. Les 2 sous-expressions sont évaluées en commençant par celle
de gauche
2. L’expression enrière prend la valeur de l’expression de droite.
 L’usage des parenthèses est obligatoire.

49 on 51 
Instructions, Expressions et Opérateurs

L’opérateur séquentiel : la virgule


Exemple d’utilisation
 if (i + +, k > 0) pour remplacer i ++; if (k > 0)


50 on 51 
Instructions, Expressions et Opérateurs

L’opérateur séquentiel : la virgule


Exemple d’utilisation
 if (i + +, k > 0) pour remplacer i ++; if (k > 0)
 for (i = 1, k = 0; · · · ; · · · ) remplace i = 1; for
(k = 0; · · · ; · · · )


50 on 51 
Instructions, Expressions et Opérateurs

L’opérateur séquentiel : la virgule


Exemple d’utilisation
 if (i + +, k > 0) pour remplacer i ++; if (k > 0)
 for (i = 1, k = 0; · · · ; · · · ) remplace i = 1; for
(k = 0; · · · ; · · · )
 for (i = 1, k = 0; printf (“ on commence 00 ) ; · · · ; · · · )


50 on 51 
Instructions, Expressions et Opérateurs

L’opérateur séquentiel : la virgule


Exemple d’utilisation
 if (i + +, k > 0) pour remplacer i ++; if (k > 0)
 for (i = 1, k = 0; · · · ; · · · ) remplace i = 1; for
(k = 0; · · · ; · · · )
 for (i = 1, k = 0; printf (“ on commence 00 ) ; · · · ; · · · )
 Ne pas confondre l’opérateur séquentiel avec la virgule utilisée
(même priorité) comme séparateur dans une liste d’arguments.


50 on 51 
Instructions, Expressions et Opérateurs

L’opérateur séquentiel : la virgule


Exemple d’utilisation
 if (i + +, k > 0) pour remplacer i ++; if (k > 0)
 for (i = 1, k = 0; · · · ; · · · ) remplace i = 1; for
(k = 0; · · · ; · · · )
 for (i = 1, k = 0; printf (“ on commence 00 ) ; · · · ; · · · )
 Ne pas confondre l’opérateur séquentiel avec la virgule utilisée
(même priorité) comme séparateur dans une liste d’arguments.
 Exemple : printf(” %d %d ”, a, (b = 5, 3 ∗ b)) ;
imprime la valeur de a, évalue l’expression b = 5, 3 ∗ b, ce qui
conduit à affecter 5 à b et calcule ensuite la valeur de 3 ∗ b, et
 enfin affiche la valeur de 3 ∗ b.
50 on 51 
Instructions, Expressions et Opérateurs

Fin du chapitre

Merci de votre Attention


51 on 51 

Vous aimerez peut-être aussi