Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
SMIA-S2
Chapitre 1: Langage C - introduction et
notions de base
Cours donné par:Pr. Nawal Alioua
Année universitaire:2019-2020
N. Alioua Chapitre 1: Langage C - introduction et notions de base 1
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 2
Passage de l'algorithmique à un langage de programmation
L'ordinateur est un matériel électronique, qui ne manipule que desimpulsions électriques:Le bit (0)2 correspond à l'impulsion 0 volts
Le bit (1)2 correspond à l'impulsion 5 volts (ou 3 volts pour quelquesmachines)
Il faut donc traduire nos algorithmes écrits en langage humain enlangage machine a�n que l'ordinateur puisse les exécuter.
⇒ Les langages de programmation permettent d'écrire des programmesinformatiques en utilisant une syntaxe proche du langage humain.Par la suite, certains outils liés au langage de programmation permettent detraduire ces programmes en langage compréhensible par la machine.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 3
Passage de l'algorithmique à un langage de programmation
L'ordinateur est un matériel électronique, qui ne manipule que desimpulsions électriques:Le bit (0)2 correspond à l'impulsion 0 volts
Le bit (1)2 correspond à l'impulsion 5 volts (ou 3 volts pour quelquesmachines)
Il faut donc traduire nos algorithmes écrits en langage humain enlangage machine a�n que l'ordinateur puisse les exécuter.
⇒ Les langages de programmation permettent d'écrire des programmesinformatiques en utilisant une syntaxe proche du langage humain.Par la suite, certains outils liés au langage de programmation permettent detraduire ces programmes en langage compréhensible par la machine.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 3
Passage de l'algorithmique à un langage de programmation
L'ordinateur est un matériel électronique, qui ne manipule que desimpulsions électriques:Le bit (0)2 correspond à l'impulsion 0 volts
Le bit (1)2 correspond à l'impulsion 5 volts (ou 3 volts pour quelquesmachines)
Il faut donc traduire nos algorithmes écrits en langage humain enlangage machine a�n que l'ordinateur puisse les exécuter.
⇒ Les langages de programmation permettent d'écrire des programmesinformatiques en utilisant une syntaxe proche du langage humain.Par la suite, certains outils liés au langage de programmation permettent detraduire ces programmes en langage compréhensible par la machine.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 3
Passage de l'algorithmique à un langage de programmation
L'ordinateur est un matériel électronique, qui ne manipule que desimpulsions électriques:Le bit (0)2 correspond à l'impulsion 0 volts
Le bit (1)2 correspond à l'impulsion 5 volts (ou 3 volts pour quelquesmachines)
Il faut donc traduire nos algorithmes écrits en langage humain enlangage machine a�n que l'ordinateur puisse les exécuter.
⇒ Les langages de programmation permettent d'écrire des programmesinformatiques en utilisant une syntaxe proche du langage humain.Par la suite, certains outils liés au langage de programmation permettent detraduire ces programmes en langage compréhensible par la machine.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 3
Passage de l'algorithmique à un langage de programmation
L'ordinateur est un matériel électronique, qui ne manipule que desimpulsions électriques:Le bit (0)2 correspond à l'impulsion 0 volts
Le bit (1)2 correspond à l'impulsion 5 volts (ou 3 volts pour quelquesmachines)
Il faut donc traduire nos algorithmes écrits en langage humain enlangage machine a�n que l'ordinateur puisse les exécuter.
⇒ Les langages de programmation permettent d'écrire des programmesinformatiques en utilisant une syntaxe proche du langage humain.Par la suite, certains outils liés au langage de programmation permettent detraduire ces programmes en langage compréhensible par la machine.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 3
Passage de l'algorithmique à un langage de programmation
L'ordinateur est un matériel électronique, qui ne manipule que desimpulsions électriques:Le bit (0)2 correspond à l'impulsion 0 volts
Le bit (1)2 correspond à l'impulsion 5 volts (ou 3 volts pour quelquesmachines)
Il faut donc traduire nos algorithmes écrits en langage humain enlangage machine a�n que l'ordinateur puisse les exécuter.
⇒ Les langages de programmation permettent d'écrire des programmesinformatiques en utilisant une syntaxe proche du langage humain.Par la suite, certains outils liés au langage de programmation permettent detraduire ces programmes en langage compréhensible par la machine.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 3
Introduction à la programmation en langage C
Plan
1 Introduction à la programmation en langage CQu'est ce que la programmationAlgorithmique-dé�nitionsLangage de programmation-Dé�nitionsPourquoi étudier le langage C?Historique du langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 4
Introduction à la programmation en langage C Qu'est ce que la programmation
Plan
1 Introduction à la programmation en langage CQu'est ce que la programmationAlgorithmique-dé�nitionsLangage de programmation-Dé�nitionsPourquoi étudier le langage C?Historique du langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 5
Introduction à la programmation en langage C Qu'est ce que la programmation
Langage machine Vs Langage de programmation
Langage machine: l'information est exprimée et manipulée sous formed'une suite de bits.
Problème: le langage machine est di�cile à comprendre par l'humain.
Idée: trouver un langage compréhensible par l'homme qui sera ensuiteconverti en langage machine.
Apparition de l'Assembleur: exprimer les instructions élémentaires, quireprésentent les ordres données à la machine, de façon symbolique:↑ beaucoup plus accessible que le langage machine
↓ dépend du type de la machine (n'est pas portable)
↓ pas assez e�cace pour développer des applications complexes
Apparition des langages de programmation
N. Alioua Chapitre 1: Langage C - introduction et notions de base 6
Introduction à la programmation en langage C Qu'est ce que la programmation
Langage machine Vs Langage de programmation
Langage machine: l'information est exprimée et manipulée sous formed'une suite de bits.
Problème: le langage machine est di�cile à comprendre par l'humain.
Idée: trouver un langage compréhensible par l'homme qui sera ensuiteconverti en langage machine.
Apparition de l'Assembleur: exprimer les instructions élémentaires, quireprésentent les ordres données à la machine, de façon symbolique:↑ beaucoup plus accessible que le langage machine
↓ dépend du type de la machine (n'est pas portable)
↓ pas assez e�cace pour développer des applications complexes
Apparition des langages de programmation
N. Alioua Chapitre 1: Langage C - introduction et notions de base 6
Introduction à la programmation en langage C Qu'est ce que la programmation
Langage machine Vs Langage de programmation
Langage machine: l'information est exprimée et manipulée sous formed'une suite de bits.
Problème: le langage machine est di�cile à comprendre par l'humain.
Idée: trouver un langage compréhensible par l'homme qui sera ensuiteconverti en langage machine.
Apparition de l'Assembleur: exprimer les instructions élémentaires, quireprésentent les ordres données à la machine, de façon symbolique:↑ beaucoup plus accessible que le langage machine
↓ dépend du type de la machine (n'est pas portable)
↓ pas assez e�cace pour développer des applications complexes
Apparition des langages de programmation
N. Alioua Chapitre 1: Langage C - introduction et notions de base 6
Introduction à la programmation en langage C Qu'est ce que la programmation
Langage machine Vs Langage de programmation
Langage machine: l'information est exprimée et manipulée sous formed'une suite de bits.
Problème: le langage machine est di�cile à comprendre par l'humain.
Idée: trouver un langage compréhensible par l'homme qui sera ensuiteconverti en langage machine.
Apparition de l'Assembleur: exprimer les instructions élémentaires, quireprésentent les ordres données à la machine, de façon symbolique:↑ beaucoup plus accessible que le langage machine
↓ dépend du type de la machine (n'est pas portable)
↓ pas assez e�cace pour développer des applications complexes
Apparition des langages de programmation
N. Alioua Chapitre 1: Langage C - introduction et notions de base 6
Introduction à la programmation en langage C Qu'est ce que la programmation
Langage machine Vs Langage de programmation
Langage machine: l'information est exprimée et manipulée sous formed'une suite de bits.
Problème: le langage machine est di�cile à comprendre par l'humain.
Idée: trouver un langage compréhensible par l'homme qui sera ensuiteconverti en langage machine.
Apparition de l'Assembleur: exprimer les instructions élémentaires, quireprésentent les ordres données à la machine, de façon symbolique:↑ beaucoup plus accessible que le langage machine
↓ dépend du type de la machine (n'est pas portable)
↓ pas assez e�cace pour développer des applications complexes
Apparition des langages de programmation
N. Alioua Chapitre 1: Langage C - introduction et notions de base 6
Introduction à la programmation en langage C Qu'est ce que la programmation
Langage machine Vs Langage de programmation
Langage machine: l'information est exprimée et manipulée sous formed'une suite de bits.
Problème: le langage machine est di�cile à comprendre par l'humain.
Idée: trouver un langage compréhensible par l'homme qui sera ensuiteconverti en langage machine.
Apparition de l'Assembleur: exprimer les instructions élémentaires, quireprésentent les ordres données à la machine, de façon symbolique:↑ beaucoup plus accessible que le langage machine
↓ dépend du type de la machine (n'est pas portable)
↓ pas assez e�cace pour développer des applications complexes
Apparition des langages de programmation
N. Alioua Chapitre 1: Langage C - introduction et notions de base 6
Introduction à la programmation en langage C Qu'est ce que la programmation
Langage machine Vs Langage de programmation
Langage machine: l'information est exprimée et manipulée sous formed'une suite de bits.
Problème: le langage machine est di�cile à comprendre par l'humain.
Idée: trouver un langage compréhensible par l'homme qui sera ensuiteconverti en langage machine.
Apparition de l'Assembleur: exprimer les instructions élémentaires, quireprésentent les ordres données à la machine, de façon symbolique:↑ beaucoup plus accessible que le langage machine
↓ dépend du type de la machine (n'est pas portable)
↓ pas assez e�cace pour développer des applications complexes
Apparition des langages de programmation
N. Alioua Chapitre 1: Langage C - introduction et notions de base 6
Introduction à la programmation en langage C Qu'est ce que la programmation
Langage machine Vs Langage de programmation
Langage machine: l'information est exprimée et manipulée sous formed'une suite de bits.
Problème: le langage machine est di�cile à comprendre par l'humain.
Idée: trouver un langage compréhensible par l'homme qui sera ensuiteconverti en langage machine.
Apparition de l'Assembleur: exprimer les instructions élémentaires, quireprésentent les ordres données à la machine, de façon symbolique:↑ beaucoup plus accessible que le langage machine
↓ dépend du type de la machine (n'est pas portable)
↓ pas assez e�cace pour développer des applications complexes
Apparition des langages de programmation
N. Alioua Chapitre 1: Langage C - introduction et notions de base 6
Introduction à la programmation en langage C Qu'est ce que la programmation
Qu'est ce que la programmation?
Programmer c'est réaliser des programmes informatiques pour e�ectuerdes traitements sur les données et résoudre des problèmes.
Les programmes ordonnent à l'ordinateur d'e�ectuer des actions et destâches.
Dé�nition d'un programme: suite d'instructions qui permettent à unsystème informatique d'exécuter une tâche donnée.
En informatique, il existe de nombreux langages de plus ou moins hautniveau :- Plus un langage informatique est de haut niveau, plus il se rapproche dulangage humain.
- Plus un langage informatique est de bas niveau, plus il se rapproche dulangage machine.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 7
Introduction à la programmation en langage C Qu'est ce que la programmation
Qu'est ce que la programmation?
Programmer c'est réaliser des programmes informatiques pour e�ectuerdes traitements sur les données et résoudre des problèmes.
Les programmes ordonnent à l'ordinateur d'e�ectuer des actions et destâches.
Dé�nition d'un programme: suite d'instructions qui permettent à unsystème informatique d'exécuter une tâche donnée.
En informatique, il existe de nombreux langages de plus ou moins hautniveau :- Plus un langage informatique est de haut niveau, plus il se rapproche dulangage humain.
- Plus un langage informatique est de bas niveau, plus il se rapproche dulangage machine.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 7
Introduction à la programmation en langage C Qu'est ce que la programmation
Qu'est ce que la programmation?
Programmer c'est réaliser des programmes informatiques pour e�ectuerdes traitements sur les données et résoudre des problèmes.
Les programmes ordonnent à l'ordinateur d'e�ectuer des actions et destâches.
Dé�nition d'un programme: suite d'instructions qui permettent à unsystème informatique d'exécuter une tâche donnée.
En informatique, il existe de nombreux langages de plus ou moins hautniveau :- Plus un langage informatique est de haut niveau, plus il se rapproche dulangage humain.
- Plus un langage informatique est de bas niveau, plus il se rapproche dulangage machine.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 7
Introduction à la programmation en langage C Qu'est ce que la programmation
Qu'est ce que la programmation?
Programmer c'est réaliser des programmes informatiques pour e�ectuerdes traitements sur les données et résoudre des problèmes.
Les programmes ordonnent à l'ordinateur d'e�ectuer des actions et destâches.
Dé�nition d'un programme: suite d'instructions qui permettent à unsystème informatique d'exécuter une tâche donnée.
En informatique, il existe de nombreux langages de plus ou moins hautniveau :- Plus un langage informatique est de haut niveau, plus il se rapproche dulangage humain.
- Plus un langage informatique est de bas niveau, plus il se rapproche dulangage machine.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 7
Introduction à la programmation en langage C Qu'est ce que la programmation
Propriétés des langages haut niveau:
compréhensible car proche du langage humain (en anglais)
permet une plus grande portabilité (indépendant du matériel)
Manipulation de données et d'expressions complexes (réels, objets,a*b/c, ...)
Nécessité un traducteur (compilateur/interpréteur)
Exécution plus ou moins lente selon le traducteur utilisé
N. Alioua Chapitre 1: Langage C - introduction et notions de base 8
Introduction à la programmation en langage C Qu'est ce que la programmation
Propriétés des langages haut niveau:
compréhensible car proche du langage humain (en anglais)
permet une plus grande portabilité (indépendant du matériel)
Manipulation de données et d'expressions complexes (réels, objets,a*b/c, ...)
Nécessité un traducteur (compilateur/interpréteur)
Exécution plus ou moins lente selon le traducteur utilisé
N. Alioua Chapitre 1: Langage C - introduction et notions de base 8
Introduction à la programmation en langage C Qu'est ce que la programmation
Propriétés des langages haut niveau:
compréhensible car proche du langage humain (en anglais)
permet une plus grande portabilité (indépendant du matériel)
Manipulation de données et d'expressions complexes (réels, objets,a*b/c, ...)
Nécessité un traducteur (compilateur/interpréteur)
Exécution plus ou moins lente selon le traducteur utilisé
N. Alioua Chapitre 1: Langage C - introduction et notions de base 8
Introduction à la programmation en langage C Qu'est ce que la programmation
Propriétés des langages haut niveau:
compréhensible car proche du langage humain (en anglais)
permet une plus grande portabilité (indépendant du matériel)
Manipulation de données et d'expressions complexes (réels, objets,a*b/c, ...)
Nécessité un traducteur (compilateur/interpréteur)
Exécution plus ou moins lente selon le traducteur utilisé
N. Alioua Chapitre 1: Langage C - introduction et notions de base 8
Introduction à la programmation en langage C Qu'est ce que la programmation
Propriétés des langages haut niveau:
compréhensible car proche du langage humain (en anglais)
permet une plus grande portabilité (indépendant du matériel)
Manipulation de données et d'expressions complexes (réels, objets,a*b/c, ...)
Nécessité un traducteur (compilateur/interpréteur)
Exécution plus ou moins lente selon le traducteur utilisé
N. Alioua Chapitre 1: Langage C - introduction et notions de base 8
Introduction à la programmation en langage C Qu'est ce que la programmation
Compilateur Vs Interpréteur
Compilateur: traduire le programme entier une fois pour toute↑ plus rapide à l'exécution
↑ sécurité du code source
↓ il faut recompiler à chaque modi�cation
Interpréteur: traduire au fur et à mesure les instructions duprogramme à chaque exécution↑ exécution instantanée appréciable pour les débutants
↓ exécution lente par rapport à la compilation
N. Alioua Chapitre 1: Langage C - introduction et notions de base 9
Introduction à la programmation en langage C Qu'est ce que la programmation
Compilateur Vs Interpréteur
Compilateur: traduire le programme entier une fois pour toute↑ plus rapide à l'exécution
↑ sécurité du code source
↓ il faut recompiler à chaque modi�cation
Interpréteur: traduire au fur et à mesure les instructions duprogramme à chaque exécution↑ exécution instantanée appréciable pour les débutants
↓ exécution lente par rapport à la compilation
N. Alioua Chapitre 1: Langage C - introduction et notions de base 9
Introduction à la programmation en langage C Qu'est ce que la programmation
Étapes de réalisation d'un programme
La réalisation de programmes passe par l'écriture d'algorithmes. C'estpour cette raison que nous avons étudié l'algorithmique pendant lesemestre 1
N. Alioua Chapitre 1: Langage C - introduction et notions de base 10
Introduction à la programmation en langage C Algorithmique-dé�nitions
Plan
1 Introduction à la programmation en langage CQu'est ce que la programmationAlgorithmique-dé�nitionsLangage de programmation-Dé�nitionsPourquoi étudier le langage C?Historique du langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 11
Introduction à la programmation en langage C Algorithmique-dé�nitions
Algorithmique
Le terme algorithme vient du nom du mathématicien arabeAl-Khawarizmi (820 après J.C.)
Algorithme: description complète et détaillée des actions à e�ectuer etde leur séquencement pour arriver à un résultat donné
Intérêt: séparation analyse/codage pour ne pas se préoccuper de lasyntaxe.
Nous avons étudié les algorithmes en semestre 1 en adoptant lareprésentation en peudo-code:- représentation textuelle avec une série de conventions ressemblant à unlangage de programmation (sans les problèmes de syntaxe)
- plus pratique pour écrire un algorithme
- représentation largement utilisée
N. Alioua Chapitre 1: Langage C - introduction et notions de base 12
Introduction à la programmation en langage C Algorithmique-dé�nitions
Algorithmique
Le terme algorithme vient du nom du mathématicien arabeAl-Khawarizmi (820 après J.C.)
Algorithme: description complète et détaillée des actions à e�ectuer etde leur séquencement pour arriver à un résultat donné
Intérêt: séparation analyse/codage pour ne pas se préoccuper de lasyntaxe.
Nous avons étudié les algorithmes en semestre 1 en adoptant lareprésentation en peudo-code:- représentation textuelle avec une série de conventions ressemblant à unlangage de programmation (sans les problèmes de syntaxe)
- plus pratique pour écrire un algorithme
- représentation largement utilisée
N. Alioua Chapitre 1: Langage C - introduction et notions de base 12
Introduction à la programmation en langage C Algorithmique-dé�nitions
Algorithmique
Le terme algorithme vient du nom du mathématicien arabeAl-Khawarizmi (820 après J.C.)
Algorithme: description complète et détaillée des actions à e�ectuer etde leur séquencement pour arriver à un résultat donné
Intérêt: séparation analyse/codage pour ne pas se préoccuper de lasyntaxe.
Nous avons étudié les algorithmes en semestre 1 en adoptant lareprésentation en peudo-code:- représentation textuelle avec une série de conventions ressemblant à unlangage de programmation (sans les problèmes de syntaxe)
- plus pratique pour écrire un algorithme
- représentation largement utilisée
N. Alioua Chapitre 1: Langage C - introduction et notions de base 12
Introduction à la programmation en langage C Algorithmique-dé�nitions
Algorithmique
Le terme algorithme vient du nom du mathématicien arabeAl-Khawarizmi (820 après J.C.)
Algorithme: description complète et détaillée des actions à e�ectuer etde leur séquencement pour arriver à un résultat donné
Intérêt: séparation analyse/codage pour ne pas se préoccuper de lasyntaxe.
Nous avons étudié les algorithmes en semestre 1 en adoptant lareprésentation en peudo-code:- représentation textuelle avec une série de conventions ressemblant à unlangage de programmation (sans les problèmes de syntaxe)
- plus pratique pour écrire un algorithme
- représentation largement utilisée
N. Alioua Chapitre 1: Langage C - introduction et notions de base 12
Introduction à la programmation en langage C Algorithmique-dé�nitions
Algorithmique
Le terme algorithme vient du nom du mathématicien arabeAl-Khawarizmi (820 après J.C.)
Algorithme: description complète et détaillée des actions à e�ectuer etde leur séquencement pour arriver à un résultat donné
Intérêt: séparation analyse/codage pour ne pas se préoccuper de lasyntaxe.
Nous avons étudié les algorithmes en semestre 1 en adoptant lareprésentation en peudo-code:- représentation textuelle avec une série de conventions ressemblant à unlangage de programmation (sans les problèmes de syntaxe)
- plus pratique pour écrire un algorithme
- représentation largement utilisée
N. Alioua Chapitre 1: Langage C - introduction et notions de base 12
Introduction à la programmation en langage C Algorithmique-dé�nitions
Algorithmique
Le terme algorithme vient du nom du mathématicien arabeAl-Khawarizmi (820 après J.C.)
Algorithme: description complète et détaillée des actions à e�ectuer etde leur séquencement pour arriver à un résultat donné
Intérêt: séparation analyse/codage pour ne pas se préoccuper de lasyntaxe.
Nous avons étudié les algorithmes en semestre 1 en adoptant lareprésentation en peudo-code:- représentation textuelle avec une série de conventions ressemblant à unlangage de programmation (sans les problèmes de syntaxe)
- plus pratique pour écrire un algorithme
- représentation largement utilisée
N. Alioua Chapitre 1: Langage C - introduction et notions de base 12
Introduction à la programmation en langage C Algorithmique-dé�nitions
Algorithmique
Le terme algorithme vient du nom du mathématicien arabeAl-Khawarizmi (820 après J.C.)
Algorithme: description complète et détaillée des actions à e�ectuer etde leur séquencement pour arriver à un résultat donné
Intérêt: séparation analyse/codage pour ne pas se préoccuper de lasyntaxe.
Nous avons étudié les algorithmes en semestre 1 en adoptant lareprésentation en peudo-code:- représentation textuelle avec une série de conventions ressemblant à unlangage de programmation (sans les problèmes de syntaxe)
- plus pratique pour écrire un algorithme
- représentation largement utilisée
N. Alioua Chapitre 1: Langage C - introduction et notions de base 12
Introduction à la programmation en langage C Langage de programmation-Dé�nitions
Plan
1 Introduction à la programmation en langage CQu'est ce que la programmationAlgorithmique-dé�nitionsLangage de programmation-Dé�nitionsPourquoi étudier le langage C?Historique du langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 13
Introduction à la programmation en langage C Langage de programmation-Dé�nitions
Langage de programmation- Dé�nitions
Langage de programmation: notation conventionnelle permettantde formuler des algorithmes et créer des programmes informatiques quiles appliquent.
Comme pour un langage naturel, un langage de programmation est faitd'un alphabet, un vocabulaire, des règles grammaticales,sémantiques et syntaxiques.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 14
Introduction à la programmation en langage C Langage de programmation-Dé�nitions
Langage de programmation- Généralités
- Alphabet: basé sur les normes courantes comme la norme ASCII, quicomporte les lettres de A à Z sans accent, des chi�res et des symboles,ou bien la norme Unicode pour la plupart des langages modernes.
- Vocabulaire: ensemble des instructions construites à partir dessymboles de l'alphabet.
- Sémantique: dé�nit le sens de chacune des phrases qui peuvent êtreconstruites dans le langage, en particulier quels seront les e�ets de laphrase lors de l'exécution du programme.
- Syntaxe: ensemble des règles qui dé�nissent la manière d'écrire ou dedisposer les éléments d'un langage pour obtenir des programmes valideset compréhensibles par la machine.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 15
Introduction à la programmation en langage C Langage de programmation-Dé�nitions
Langage de programmation- Généralités
- Alphabet: basé sur les normes courantes comme la norme ASCII, quicomporte les lettres de A à Z sans accent, des chi�res et des symboles,ou bien la norme Unicode pour la plupart des langages modernes.
- Vocabulaire: ensemble des instructions construites à partir dessymboles de l'alphabet.
- Sémantique: dé�nit le sens de chacune des phrases qui peuvent êtreconstruites dans le langage, en particulier quels seront les e�ets de laphrase lors de l'exécution du programme.
- Syntaxe: ensemble des règles qui dé�nissent la manière d'écrire ou dedisposer les éléments d'un langage pour obtenir des programmes valideset compréhensibles par la machine.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 15
Introduction à la programmation en langage C Langage de programmation-Dé�nitions
Langage de programmation- Généralités
- Alphabet: basé sur les normes courantes comme la norme ASCII, quicomporte les lettres de A à Z sans accent, des chi�res et des symboles,ou bien la norme Unicode pour la plupart des langages modernes.
- Vocabulaire: ensemble des instructions construites à partir dessymboles de l'alphabet.
- Sémantique: dé�nit le sens de chacune des phrases qui peuvent êtreconstruites dans le langage, en particulier quels seront les e�ets de laphrase lors de l'exécution du programme.
- Syntaxe: ensemble des règles qui dé�nissent la manière d'écrire ou dedisposer les éléments d'un langage pour obtenir des programmes valideset compréhensibles par la machine.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 15
Introduction à la programmation en langage C Langage de programmation-Dé�nitions
Langage de programmation- Généralités
- Alphabet: basé sur les normes courantes comme la norme ASCII, quicomporte les lettres de A à Z sans accent, des chi�res et des symboles,ou bien la norme Unicode pour la plupart des langages modernes.
- Vocabulaire: ensemble des instructions construites à partir dessymboles de l'alphabet.
- Sémantique: dé�nit le sens de chacune des phrases qui peuvent êtreconstruites dans le langage, en particulier quels seront les e�ets de laphrase lors de l'exécution du programme.
- Syntaxe: ensemble des règles qui dé�nissent la manière d'écrire ou dedisposer les éléments d'un langage pour obtenir des programmes valideset compréhensibles par la machine.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 15
Introduction à la programmation en langage C Langage de programmation-Dé�nitions
Quel langage de programmation choisir?
Facilité d'apprentissage et d'utilisation pour le programmeur,
Rapidité d'exécution des programmes et stabilité (absence de défaut,appelé bugs en informatiques),
Durabilité du langage,
Disponibilité de programmeurs experts du langage,
Possibilité de structuration du programme,
Possibilité d'intégrer des programmes écrits dans d'autres langages,
Portabilité du langage sur di�érentes plateformes,
Existence d'une norme internationale concernant la dé�nition dulangage,
N. Alioua Chapitre 1: Langage C - introduction et notions de base 16
Introduction à la programmation en langage C Langage de programmation-Dé�nitions
Exemples de langages de programmation
C;
C++;
Java ;
PHP ;
JavaScript ;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 17
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Plan
1 Introduction à la programmation en langage CQu'est ce que la programmationAlgorithmique-dé�nitionsLangage de programmation-Dé�nitionsPourquoi étudier le langage C?Historique du langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 18
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Pourquoi étudier le langage C?
Il existe plusieurs langages de programmation et on peut se demanderpourquoi on étudie le langage C. Ces raisons peuvent motiver ce choix:Sa popularité:il possède une communauté très importante et de nombreux tutoriels etdocumentations.
il existe plusieurs programmes et bibliothèques développés en/et pour le C.
Sa rapidité :connu pour être très rapide, il est préféré pour tout programme où la vitessed'exécution est importante.
Sa légèreté :étant léger, il est utilisé pour les programmes embarqués où la mémoiredisponible est faible.
Sa portabilité :un programme développé en C marche (théoriquement) sur n'importe quelleplateforme.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 19
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Pourquoi étudier le langage C?
Il existe plusieurs langages de programmation et on peut se demanderpourquoi on étudie le langage C. Ces raisons peuvent motiver ce choix:Sa popularité:il possède une communauté très importante et de nombreux tutoriels etdocumentations.
il existe plusieurs programmes et bibliothèques développés en/et pour le C.
Sa rapidité :connu pour être très rapide, il est préféré pour tout programme où la vitessed'exécution est importante.
Sa légèreté :étant léger, il est utilisé pour les programmes embarqués où la mémoiredisponible est faible.
Sa portabilité :un programme développé en C marche (théoriquement) sur n'importe quelleplateforme.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 19
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Pourquoi étudier le langage C?
Il existe plusieurs langages de programmation et on peut se demanderpourquoi on étudie le langage C. Ces raisons peuvent motiver ce choix:Sa popularité:il possède une communauté très importante et de nombreux tutoriels etdocumentations.
il existe plusieurs programmes et bibliothèques développés en/et pour le C.
Sa rapidité :connu pour être très rapide, il est préféré pour tout programme où la vitessed'exécution est importante.
Sa légèreté :étant léger, il est utilisé pour les programmes embarqués où la mémoiredisponible est faible.
Sa portabilité :un programme développé en C marche (théoriquement) sur n'importe quelleplateforme.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 19
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Pourquoi étudier le langage C?
Il existe plusieurs langages de programmation et on peut se demanderpourquoi on étudie le langage C. Ces raisons peuvent motiver ce choix:Sa popularité:il possède une communauté très importante et de nombreux tutoriels etdocumentations.
il existe plusieurs programmes et bibliothèques développés en/et pour le C.
Sa rapidité :connu pour être très rapide, il est préféré pour tout programme où la vitessed'exécution est importante.
Sa légèreté :étant léger, il est utilisé pour les programmes embarqués où la mémoiredisponible est faible.
Sa portabilité :un programme développé en C marche (théoriquement) sur n'importe quelleplateforme.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 19
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Pourquoi étudier le langage C?
Il existe plusieurs langages de programmation et on peut se demanderpourquoi on étudie le langage C. Ces raisons peuvent motiver ce choix:Sa popularité:il possède une communauté très importante et de nombreux tutoriels etdocumentations.
il existe plusieurs programmes et bibliothèques développés en/et pour le C.
Sa rapidité :connu pour être très rapide, il est préféré pour tout programme où la vitessed'exécution est importante.
Sa légèreté :étant léger, il est utilisé pour les programmes embarqués où la mémoiredisponible est faible.
Sa portabilité :un programme développé en C marche (théoriquement) sur n'importe quelleplateforme.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 19
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Pourquoi étudier le langage C?
Il existe plusieurs langages de programmation et on peut se demanderpourquoi on étudie le langage C. Ces raisons peuvent motiver ce choix:Sa popularité:il possède une communauté très importante et de nombreux tutoriels etdocumentations.
il existe plusieurs programmes et bibliothèques développés en/et pour le C.
Sa rapidité :connu pour être très rapide, il est préféré pour tout programme où la vitessed'exécution est importante.
Sa légèreté :étant léger, il est utilisé pour les programmes embarqués où la mémoiredisponible est faible.
Sa portabilité :un programme développé en C marche (théoriquement) sur n'importe quelleplateforme.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 19
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Pourquoi étudier le langage C?
Il existe plusieurs langages de programmation et on peut se demanderpourquoi on étudie le langage C. Ces raisons peuvent motiver ce choix:Sa popularité:il possède une communauté très importante et de nombreux tutoriels etdocumentations.
il existe plusieurs programmes et bibliothèques développés en/et pour le C.
Sa rapidité :connu pour être très rapide, il est préféré pour tout programme où la vitessed'exécution est importante.
Sa légèreté :étant léger, il est utilisé pour les programmes embarqués où la mémoiredisponible est faible.
Sa portabilité :un programme développé en C marche (théoriquement) sur n'importe quelleplateforme.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 19
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Pourquoi étudier le langage C?
Il existe plusieurs langages de programmation et on peut se demanderpourquoi on étudie le langage C. Ces raisons peuvent motiver ce choix:Sa popularité:il possède une communauté très importante et de nombreux tutoriels etdocumentations.
il existe plusieurs programmes et bibliothèques développés en/et pour le C.
Sa rapidité :connu pour être très rapide, il est préféré pour tout programme où la vitessed'exécution est importante.
Sa légèreté :étant léger, il est utilisé pour les programmes embarqués où la mémoiredisponible est faible.
Sa portabilité :un programme développé en C marche (théoriquement) sur n'importe quelleplateforme.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 19
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Inconvénients du C
tolérance aux comportements dangereux: C demande beaucoup derigueur et une bonne connaissance de ses bases pour ne pas tomberdans certains pièges.
nombre restreint de concepts: impose de devoir coder certainsmécanismes qui existent nativement dans d'autres langages
langage de bas niveau: ce point est considéré comme avantagesurtout pour les informaticiens, mais est aussi vu comme inconvénient.On programme en cherchant à comprendre ce que l'on fait. :programmer est un peu plus di�cile et plus long, mais on apprendbeaucoup sur sa machine et on a un grand contrôle sur ce que l'on fait.
Dans les langages de haut niveau, on programme en ignorant plusieursnotions primordiales. Programmer est souvent plus facile et plus rapide,mais on voit moins bien le fonctionnement de la machine et on peut tomberdans des erreurs très di�ciles à détecter et à corriger.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 20
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Inconvénients du C
tolérance aux comportements dangereux: C demande beaucoup derigueur et une bonne connaissance de ses bases pour ne pas tomberdans certains pièges.
nombre restreint de concepts: impose de devoir coder certainsmécanismes qui existent nativement dans d'autres langages
langage de bas niveau: ce point est considéré comme avantagesurtout pour les informaticiens, mais est aussi vu comme inconvénient.On programme en cherchant à comprendre ce que l'on fait. :programmer est un peu plus di�cile et plus long, mais on apprendbeaucoup sur sa machine et on a un grand contrôle sur ce que l'on fait.
Dans les langages de haut niveau, on programme en ignorant plusieursnotions primordiales. Programmer est souvent plus facile et plus rapide,mais on voit moins bien le fonctionnement de la machine et on peut tomberdans des erreurs très di�ciles à détecter et à corriger.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 20
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Inconvénients du C
tolérance aux comportements dangereux: C demande beaucoup derigueur et une bonne connaissance de ses bases pour ne pas tomberdans certains pièges.
nombre restreint de concepts: impose de devoir coder certainsmécanismes qui existent nativement dans d'autres langages
langage de bas niveau: ce point est considéré comme avantagesurtout pour les informaticiens, mais est aussi vu comme inconvénient.On programme en cherchant à comprendre ce que l'on fait. :programmer est un peu plus di�cile et plus long, mais on apprendbeaucoup sur sa machine et on a un grand contrôle sur ce que l'on fait.
Dans les langages de haut niveau, on programme en ignorant plusieursnotions primordiales. Programmer est souvent plus facile et plus rapide,mais on voit moins bien le fonctionnement de la machine et on peut tomberdans des erreurs très di�ciles à détecter et à corriger.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 20
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Inconvénients du C
tolérance aux comportements dangereux: C demande beaucoup derigueur et une bonne connaissance de ses bases pour ne pas tomberdans certains pièges.
nombre restreint de concepts: impose de devoir coder certainsmécanismes qui existent nativement dans d'autres langages
langage de bas niveau: ce point est considéré comme avantagesurtout pour les informaticiens, mais est aussi vu comme inconvénient.On programme en cherchant à comprendre ce que l'on fait. :programmer est un peu plus di�cile et plus long, mais on apprendbeaucoup sur sa machine et on a un grand contrôle sur ce que l'on fait.
Dans les langages de haut niveau, on programme en ignorant plusieursnotions primordiales. Programmer est souvent plus facile et plus rapide,mais on voit moins bien le fonctionnement de la machine et on peut tomberdans des erreurs très di�ciles à détecter et à corriger.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 20
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Inconvénients du C
tolérance aux comportements dangereux: C demande beaucoup derigueur et une bonne connaissance de ses bases pour ne pas tomberdans certains pièges.
nombre restreint de concepts: impose de devoir coder certainsmécanismes qui existent nativement dans d'autres langages
langage de bas niveau: ce point est considéré comme avantagesurtout pour les informaticiens, mais est aussi vu comme inconvénient.On programme en cherchant à comprendre ce que l'on fait. :programmer est un peu plus di�cile et plus long, mais on apprendbeaucoup sur sa machine et on a un grand contrôle sur ce que l'on fait.
Dans les langages de haut niveau, on programme en ignorant plusieursnotions primordiales. Programmer est souvent plus facile et plus rapide,mais on voit moins bien le fonctionnement de la machine et on peut tomberdans des erreurs très di�ciles à détecter et à corriger.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 20
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Le langage C++, ce n'est pas le langage C
Le C++ est un langage de programmation qui a été inventé dans lesannées 1980 par Bjarne Stroustrup, un collègue de Dennis Ritchie(inventeur du C), qui souhaitait rajouter des éléments au C.
Bien qu'à sa création, le C++ ressemblait beaucoup au C, ces deuxlangages sont aujourd'hui très di�érents:On ne programme pas et on ne ré�échit pas de la même façon en C qu'enC++. Le C++ est un langage orienté objet, ce qui fait de lui un langage deplus haut niveau que le C, mais il est un peu plus lent.
On ne peut pas dire qu'un des langages est meilleur que l'autre, maischacun est adapté à un type de programmes.
Contrairement à ce qu'on pense, il est possible d'apprendre le C++ sanspasser par le C.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 21
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Le langage C++, ce n'est pas le langage C
Le C++ est un langage de programmation qui a été inventé dans lesannées 1980 par Bjarne Stroustrup, un collègue de Dennis Ritchie(inventeur du C), qui souhaitait rajouter des éléments au C.
Bien qu'à sa création, le C++ ressemblait beaucoup au C, ces deuxlangages sont aujourd'hui très di�érents:On ne programme pas et on ne ré�échit pas de la même façon en C qu'enC++. Le C++ est un langage orienté objet, ce qui fait de lui un langage deplus haut niveau que le C, mais il est un peu plus lent.
On ne peut pas dire qu'un des langages est meilleur que l'autre, maischacun est adapté à un type de programmes.
Contrairement à ce qu'on pense, il est possible d'apprendre le C++ sanspasser par le C.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 21
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Le langage C++, ce n'est pas le langage C
Le C++ est un langage de programmation qui a été inventé dans lesannées 1980 par Bjarne Stroustrup, un collègue de Dennis Ritchie(inventeur du C), qui souhaitait rajouter des éléments au C.
Bien qu'à sa création, le C++ ressemblait beaucoup au C, ces deuxlangages sont aujourd'hui très di�érents:On ne programme pas et on ne ré�échit pas de la même façon en C qu'enC++. Le C++ est un langage orienté objet, ce qui fait de lui un langage deplus haut niveau que le C, mais il est un peu plus lent.
On ne peut pas dire qu'un des langages est meilleur que l'autre, maischacun est adapté à un type de programmes.
Contrairement à ce qu'on pense, il est possible d'apprendre le C++ sanspasser par le C.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 21
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Le langage C++, ce n'est pas le langage C
Le C++ est un langage de programmation qui a été inventé dans lesannées 1980 par Bjarne Stroustrup, un collègue de Dennis Ritchie(inventeur du C), qui souhaitait rajouter des éléments au C.
Bien qu'à sa création, le C++ ressemblait beaucoup au C, ces deuxlangages sont aujourd'hui très di�érents:On ne programme pas et on ne ré�échit pas de la même façon en C qu'enC++. Le C++ est un langage orienté objet, ce qui fait de lui un langage deplus haut niveau que le C, mais il est un peu plus lent.
On ne peut pas dire qu'un des langages est meilleur que l'autre, maischacun est adapté à un type de programmes.
Contrairement à ce qu'on pense, il est possible d'apprendre le C++ sanspasser par le C.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 21
Introduction à la programmation en langage C Pourquoi étudier le langage C?
Le langage C++, ce n'est pas le langage C
Le C++ est un langage de programmation qui a été inventé dans lesannées 1980 par Bjarne Stroustrup, un collègue de Dennis Ritchie(inventeur du C), qui souhaitait rajouter des éléments au C.
Bien qu'à sa création, le C++ ressemblait beaucoup au C, ces deuxlangages sont aujourd'hui très di�érents:On ne programme pas et on ne ré�échit pas de la même façon en C qu'enC++. Le C++ est un langage orienté objet, ce qui fait de lui un langage deplus haut niveau que le C, mais il est un peu plus lent.
On ne peut pas dire qu'un des langages est meilleur que l'autre, maischacun est adapté à un type de programmes.
Contrairement à ce qu'on pense, il est possible d'apprendre le C++ sanspasser par le C.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 21
Introduction à la programmation en langage C Historique du langage C
Plan
1 Introduction à la programmation en langage CQu'est ce que la programmationAlgorithmique-dé�nitionsLangage de programmation-Dé�nitionsPourquoi étudier le langage C?Historique du langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 22
Introduction à la programmation en langage C Historique du langage C
Création du langage
Le langage C a été créé en 1972 par Denis Ritchie avec un objectifrelativement limité : écrire un système d'exploitation (UNIX).
Les qualités opérationnelles de C (surtout sa rapidité et sa portabilité)ont motivé son utilisation par les programmeurs.
Une première dé�nition de C est apparue en 1978 avec l'ouvrage deKernighan et Ritchie: " The C programming language". Mais celangage a continué d'évoluer après à travers di�érents compilateurs, ledernier date de 2017.
Son succès international a contribué à sa normalisation, d'abord parl'ANSI (American National Standard Institute), puis par l'ISO(International Standards Organization), puis le CEN (Comité européende normalisation).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 23
Introduction à la programmation en langage C Historique du langage C
Création du langage
Le langage C a été créé en 1972 par Denis Ritchie avec un objectifrelativement limité : écrire un système d'exploitation (UNIX).
Les qualités opérationnelles de C (surtout sa rapidité et sa portabilité)ont motivé son utilisation par les programmeurs.
Une première dé�nition de C est apparue en 1978 avec l'ouvrage deKernighan et Ritchie: " The C programming language". Mais celangage a continué d'évoluer après à travers di�érents compilateurs, ledernier date de 2017.
Son succès international a contribué à sa normalisation, d'abord parl'ANSI (American National Standard Institute), puis par l'ISO(International Standards Organization), puis le CEN (Comité européende normalisation).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 23
Introduction à la programmation en langage C Historique du langage C
Création du langage
Le langage C a été créé en 1972 par Denis Ritchie avec un objectifrelativement limité : écrire un système d'exploitation (UNIX).
Les qualités opérationnelles de C (surtout sa rapidité et sa portabilité)ont motivé son utilisation par les programmeurs.
Une première dé�nition de C est apparue en 1978 avec l'ouvrage deKernighan et Ritchie: " The C programming language". Mais celangage a continué d'évoluer après à travers di�érents compilateurs, ledernier date de 2017.
Son succès international a contribué à sa normalisation, d'abord parl'ANSI (American National Standard Institute), puis par l'ISO(International Standards Organization), puis le CEN (Comité européende normalisation).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 23
Introduction à la programmation en langage C Historique du langage C
Création du langage
Le langage C a été créé en 1972 par Denis Ritchie avec un objectifrelativement limité : écrire un système d'exploitation (UNIX).
Les qualités opérationnelles de C (surtout sa rapidité et sa portabilité)ont motivé son utilisation par les programmeurs.
Une première dé�nition de C est apparue en 1978 avec l'ouvrage deKernighan et Ritchie: " The C programming language". Mais celangage a continué d'évoluer après à travers di�érents compilateurs, ledernier date de 2017.
Son succès international a contribué à sa normalisation, d'abord parl'ANSI (American National Standard Institute), puis par l'ISO(International Standards Organization), puis le CEN (Comité européende normalisation).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 23
Introduction à la programmation en langage C Historique du langage C
Les normes du langage C
La norme correspond aux règles du langage C qui ont été développéespar des informaticiens professionnels.
Bien entendu, la norme n'est pas parfaite et ne répond pas à toutes lesquestions. Cependant, elle reste la référence de tout programmeur.
La norme sert à o�cialiser les règles pour que chaque personnesouhaitant communiquer (programmeur) puisse être parfaitementcompris par chaque interprète (compilateur) qui va traduire à lamachine.
Il existe plusieurs versions de la norme du langage C : C89, C99, C11 etC17.
Chaque version corrige des erreurs et ajoute de nouvelles fonctionnalités.
Si on utilise une ancienne norme comme le C99 (la plus utilisée àprésent), on est capable d'exécuter nos programmes dans des versionsplus récentes, mais l'inverse n'est pas toujours vrai.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 24
Introduction à la programmation en langage C Historique du langage C
Les normes du langage C
La norme correspond aux règles du langage C qui ont été développéespar des informaticiens professionnels.
Bien entendu, la norme n'est pas parfaite et ne répond pas à toutes lesquestions. Cependant, elle reste la référence de tout programmeur.
La norme sert à o�cialiser les règles pour que chaque personnesouhaitant communiquer (programmeur) puisse être parfaitementcompris par chaque interprète (compilateur) qui va traduire à lamachine.
Il existe plusieurs versions de la norme du langage C : C89, C99, C11 etC17.
Chaque version corrige des erreurs et ajoute de nouvelles fonctionnalités.
Si on utilise une ancienne norme comme le C99 (la plus utilisée àprésent), on est capable d'exécuter nos programmes dans des versionsplus récentes, mais l'inverse n'est pas toujours vrai.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 24
Introduction à la programmation en langage C Historique du langage C
Les normes du langage C
La norme correspond aux règles du langage C qui ont été développéespar des informaticiens professionnels.
Bien entendu, la norme n'est pas parfaite et ne répond pas à toutes lesquestions. Cependant, elle reste la référence de tout programmeur.
La norme sert à o�cialiser les règles pour que chaque personnesouhaitant communiquer (programmeur) puisse être parfaitementcompris par chaque interprète (compilateur) qui va traduire à lamachine.
Il existe plusieurs versions de la norme du langage C : C89, C99, C11 etC17.
Chaque version corrige des erreurs et ajoute de nouvelles fonctionnalités.
Si on utilise une ancienne norme comme le C99 (la plus utilisée àprésent), on est capable d'exécuter nos programmes dans des versionsplus récentes, mais l'inverse n'est pas toujours vrai.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 24
Introduction à la programmation en langage C Historique du langage C
Les normes du langage C
La norme correspond aux règles du langage C qui ont été développéespar des informaticiens professionnels.
Bien entendu, la norme n'est pas parfaite et ne répond pas à toutes lesquestions. Cependant, elle reste la référence de tout programmeur.
La norme sert à o�cialiser les règles pour que chaque personnesouhaitant communiquer (programmeur) puisse être parfaitementcompris par chaque interprète (compilateur) qui va traduire à lamachine.
Il existe plusieurs versions de la norme du langage C : C89, C99, C11 etC17.
Chaque version corrige des erreurs et ajoute de nouvelles fonctionnalités.
Si on utilise une ancienne norme comme le C99 (la plus utilisée àprésent), on est capable d'exécuter nos programmes dans des versionsplus récentes, mais l'inverse n'est pas toujours vrai.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 24
Introduction à la programmation en langage C Historique du langage C
Les normes du langage C
La norme correspond aux règles du langage C qui ont été développéespar des informaticiens professionnels.
Bien entendu, la norme n'est pas parfaite et ne répond pas à toutes lesquestions. Cependant, elle reste la référence de tout programmeur.
La norme sert à o�cialiser les règles pour que chaque personnesouhaitant communiquer (programmeur) puisse être parfaitementcompris par chaque interprète (compilateur) qui va traduire à lamachine.
Il existe plusieurs versions de la norme du langage C : C89, C99, C11 etC17.
Chaque version corrige des erreurs et ajoute de nouvelles fonctionnalités.
Si on utilise une ancienne norme comme le C99 (la plus utilisée àprésent), on est capable d'exécuter nos programmes dans des versionsplus récentes, mais l'inverse n'est pas toujours vrai.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 24
Introduction à la programmation en langage C Historique du langage C
Les normes du langage C
La norme correspond aux règles du langage C qui ont été développéespar des informaticiens professionnels.
Bien entendu, la norme n'est pas parfaite et ne répond pas à toutes lesquestions. Cependant, elle reste la référence de tout programmeur.
La norme sert à o�cialiser les règles pour que chaque personnesouhaitant communiquer (programmeur) puisse être parfaitementcompris par chaque interprète (compilateur) qui va traduire à lamachine.
Il existe plusieurs versions de la norme du langage C : C89, C99, C11 etC17.
Chaque version corrige des erreurs et ajoute de nouvelles fonctionnalités.
Si on utilise une ancienne norme comme le C99 (la plus utilisée àprésent), on est capable d'exécuter nos programmes dans des versionsplus récentes, mais l'inverse n'est pas toujours vrai.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 24
Éléments généraux d'un programme en langage C
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage CExemple de programmeDivers éléments du code sourceÉtapes de création d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 25
Éléments généraux d'un programme en langage C Exemple de programme
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage CExemple de programmeDivers éléments du code sourceÉtapes de création d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 26
Éléments généraux d'un programme en langage C Exemple de programme
Exemple de programme
N. Alioua Chapitre 1: Langage C - introduction et notions de base 27
Éléments généraux d'un programme en langage C Exemple de programme
Exemple de programme
N. Alioua Chapitre 1: Langage C - introduction et notions de base 27
Éléments généraux d'un programme en langage C Exemple de programme
Exemple de programme
N. Alioua Chapitre 1: Langage C - introduction et notions de base 27
Éléments généraux d'un programme en langage C Exemple de programme
Exemple de programme
N. Alioua Chapitre 1: Langage C - introduction et notions de base 27
Éléments généraux d'un programme en langage C Exemple de programme
Exemple de programme
N. Alioua Chapitre 1: Langage C - introduction et notions de base 27
Éléments généraux d'un programme en langage C Exemple de programme
Exemple de programme
N. Alioua Chapitre 1: Langage C - introduction et notions de base 27
Éléments généraux d'un programme en langage C Exemple de programme
Exemple de programme
N. Alioua Chapitre 1: Langage C - introduction et notions de base 27
Éléments généraux d'un programme en langage C Exemple de programme
Exemple de programme
N. Alioua Chapitre 1: Langage C - introduction et notions de base 28
Éléments généraux d'un programme en langage C Divers éléments du code source
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage CExemple de programmeDivers éléments du code sourceÉtapes de création d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 29
Éléments généraux d'un programme en langage C Divers éléments du code source
Éléments du code source
#include<stdio.h> informe le compilateur d'inclure le �chier stdio.hqui contient les fonctions d'entrées-sorties (i pour input et o pouroutput), dont la fonction printf.
La fonction main est la fonction principale des programmes en C: Ellese trouve obligatoirement dans tous les programmes. Elle possède deuxen-têtes possibles (qu'on étudiera dans le chapitre dédié aux fonctions)selon la norme:int main(void) {/* programme C */ return 0; }
int main(liste_arguments) {/* programme C */ return 0; }
return 0; signi�e par convention que le programme s'est terminé sans erreur.On peut ne pas mettre return 0; dans la fonction main.
L'appel de printf avec l'argument "Bonjour \n" permet d'a�cher surl'écran: Bonjour et \n ordonne le passage à la ligne suivante
En C, toute instruction simple est terminée par un point-virgule ;
Un commentaire en C est compris entre // et la �n de la ligne ou bienentre /* et */N. Alioua Chapitre 1: Langage C - introduction et notions de base 30
Éléments généraux d'un programme en langage C Divers éléments du code source
Éléments du code source
#include<stdio.h> informe le compilateur d'inclure le �chier stdio.hqui contient les fonctions d'entrées-sorties (i pour input et o pouroutput), dont la fonction printf.
La fonction main est la fonction principale des programmes en C: Ellese trouve obligatoirement dans tous les programmes. Elle possède deuxen-têtes possibles (qu'on étudiera dans le chapitre dédié aux fonctions)selon la norme:int main(void) {/* programme C */ return 0; }
int main(liste_arguments) {/* programme C */ return 0; }
return 0; signi�e par convention que le programme s'est terminé sans erreur.On peut ne pas mettre return 0; dans la fonction main.
L'appel de printf avec l'argument "Bonjour \n" permet d'a�cher surl'écran: Bonjour et \n ordonne le passage à la ligne suivante
En C, toute instruction simple est terminée par un point-virgule ;
Un commentaire en C est compris entre // et la �n de la ligne ou bienentre /* et */N. Alioua Chapitre 1: Langage C - introduction et notions de base 30
Éléments généraux d'un programme en langage C Divers éléments du code source
Éléments du code source
#include<stdio.h> informe le compilateur d'inclure le �chier stdio.hqui contient les fonctions d'entrées-sorties (i pour input et o pouroutput), dont la fonction printf.
La fonction main est la fonction principale des programmes en C: Ellese trouve obligatoirement dans tous les programmes. Elle possède deuxen-têtes possibles (qu'on étudiera dans le chapitre dédié aux fonctions)selon la norme:int main(void) {/* programme C */ return 0; }
int main(liste_arguments) {/* programme C */ return 0; }
return 0; signi�e par convention que le programme s'est terminé sans erreur.On peut ne pas mettre return 0; dans la fonction main.
L'appel de printf avec l'argument "Bonjour \n" permet d'a�cher surl'écran: Bonjour et \n ordonne le passage à la ligne suivante
En C, toute instruction simple est terminée par un point-virgule ;
Un commentaire en C est compris entre // et la �n de la ligne ou bienentre /* et */N. Alioua Chapitre 1: Langage C - introduction et notions de base 30
Éléments généraux d'un programme en langage C Divers éléments du code source
Éléments du code source
#include<stdio.h> informe le compilateur d'inclure le �chier stdio.hqui contient les fonctions d'entrées-sorties (i pour input et o pouroutput), dont la fonction printf.
La fonction main est la fonction principale des programmes en C: Ellese trouve obligatoirement dans tous les programmes. Elle possède deuxen-têtes possibles (qu'on étudiera dans le chapitre dédié aux fonctions)selon la norme:int main(void) {/* programme C */ return 0; }
int main(liste_arguments) {/* programme C */ return 0; }
return 0; signi�e par convention que le programme s'est terminé sans erreur.On peut ne pas mettre return 0; dans la fonction main.
L'appel de printf avec l'argument "Bonjour \n" permet d'a�cher surl'écran: Bonjour et \n ordonne le passage à la ligne suivante
En C, toute instruction simple est terminée par un point-virgule ;
Un commentaire en C est compris entre // et la �n de la ligne ou bienentre /* et */N. Alioua Chapitre 1: Langage C - introduction et notions de base 30
Éléments généraux d'un programme en langage C Divers éléments du code source
Éléments du code source
#include<stdio.h> informe le compilateur d'inclure le �chier stdio.hqui contient les fonctions d'entrées-sorties (i pour input et o pouroutput), dont la fonction printf.
La fonction main est la fonction principale des programmes en C: Ellese trouve obligatoirement dans tous les programmes. Elle possède deuxen-têtes possibles (qu'on étudiera dans le chapitre dédié aux fonctions)selon la norme:int main(void) {/* programme C */ return 0; }
int main(liste_arguments) {/* programme C */ return 0; }
return 0; signi�e par convention que le programme s'est terminé sans erreur.On peut ne pas mettre return 0; dans la fonction main.
L'appel de printf avec l'argument "Bonjour \n" permet d'a�cher surl'écran: Bonjour et \n ordonne le passage à la ligne suivante
En C, toute instruction simple est terminée par un point-virgule ;
Un commentaire en C est compris entre // et la �n de la ligne ou bienentre /* et */N. Alioua Chapitre 1: Langage C - introduction et notions de base 30
Éléments généraux d'un programme en langage C Divers éléments du code source
Éléments du code source
#include<stdio.h> informe le compilateur d'inclure le �chier stdio.hqui contient les fonctions d'entrées-sorties (i pour input et o pouroutput), dont la fonction printf.
La fonction main est la fonction principale des programmes en C: Ellese trouve obligatoirement dans tous les programmes. Elle possède deuxen-têtes possibles (qu'on étudiera dans le chapitre dédié aux fonctions)selon la norme:int main(void) {/* programme C */ return 0; }
int main(liste_arguments) {/* programme C */ return 0; }
return 0; signi�e par convention que le programme s'est terminé sans erreur.On peut ne pas mettre return 0; dans la fonction main.
L'appel de printf avec l'argument "Bonjour \n" permet d'a�cher surl'écran: Bonjour et \n ordonne le passage à la ligne suivante
En C, toute instruction simple est terminée par un point-virgule ;
Un commentaire en C est compris entre // et la �n de la ligne ou bienentre /* et */N. Alioua Chapitre 1: Langage C - introduction et notions de base 30
Éléments généraux d'un programme en langage C Divers éléments du code source
Éléments du code source
#include<stdio.h> informe le compilateur d'inclure le �chier stdio.hqui contient les fonctions d'entrées-sorties (i pour input et o pouroutput), dont la fonction printf.
La fonction main est la fonction principale des programmes en C: Ellese trouve obligatoirement dans tous les programmes. Elle possède deuxen-têtes possibles (qu'on étudiera dans le chapitre dédié aux fonctions)selon la norme:int main(void) {/* programme C */ return 0; }
int main(liste_arguments) {/* programme C */ return 0; }
return 0; signi�e par convention que le programme s'est terminé sans erreur.On peut ne pas mettre return 0; dans la fonction main.
L'appel de printf avec l'argument "Bonjour \n" permet d'a�cher surl'écran: Bonjour et \n ordonne le passage à la ligne suivante
En C, toute instruction simple est terminée par un point-virgule ;
Un commentaire en C est compris entre // et la �n de la ligne ou bienentre /* et */N. Alioua Chapitre 1: Langage C - introduction et notions de base 30
Éléments généraux d'un programme en langage C Divers éléments du code source
Éléments du code source
#include<stdio.h> informe le compilateur d'inclure le �chier stdio.hqui contient les fonctions d'entrées-sorties (i pour input et o pouroutput), dont la fonction printf.
La fonction main est la fonction principale des programmes en C: Ellese trouve obligatoirement dans tous les programmes. Elle possède deuxen-têtes possibles (qu'on étudiera dans le chapitre dédié aux fonctions)selon la norme:int main(void) {/* programme C */ return 0; }
int main(liste_arguments) {/* programme C */ return 0; }
return 0; signi�e par convention que le programme s'est terminé sans erreur.On peut ne pas mettre return 0; dans la fonction main.
L'appel de printf avec l'argument "Bonjour \n" permet d'a�cher surl'écran: Bonjour et \n ordonne le passage à la ligne suivante
En C, toute instruction simple est terminée par un point-virgule ;
Un commentaire en C est compris entre // et la �n de la ligne ou bienentre /* et */N. Alioua Chapitre 1: Langage C - introduction et notions de base 30
Éléments généraux d'un programme en langage C Divers éléments du code source
Les séparateurs
Dans notre langue écrite, les di�érents mots sont séparés par un espace,un signe de ponctuation ou une �n de ligne.
De même en langage C, Il existe certains séparateurs pour délimiter lesexpressions:Évidement, deux identi�cateurs successives entre lesquels la syntaxen'impose aucun signe particulier (, ou = ou ; ou * ou ( ) ou [ ] ou { })doivent impérativement être séparés soit par un espace, soit par une �nde ligne.
Dès que la syntaxe impose un séparateur quelconque, il n'est alors pasobligatoire de mettre des espaces supplémentaires, bien qu'en pratiquecela améliore la lisibilité du programme.
En langage C, chaque instruction se termine par un point-virgule ;
Exemple:On doit écrire int x,y; et non pas intx,y;
On peut écrire indi�éremment int n,compte,total,p; ou pour plus de lisibilitéint n, compte, total, p ;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 31
Éléments généraux d'un programme en langage C Divers éléments du code source
Les séparateurs
Dans notre langue écrite, les di�érents mots sont séparés par un espace,un signe de ponctuation ou une �n de ligne.
De même en langage C, Il existe certains séparateurs pour délimiter lesexpressions:Évidement, deux identi�cateurs successives entre lesquels la syntaxen'impose aucun signe particulier (, ou = ou ; ou * ou ( ) ou [ ] ou { })doivent impérativement être séparés soit par un espace, soit par une �nde ligne.
Dès que la syntaxe impose un séparateur quelconque, il n'est alors pasobligatoire de mettre des espaces supplémentaires, bien qu'en pratiquecela améliore la lisibilité du programme.
En langage C, chaque instruction se termine par un point-virgule ;
Exemple:On doit écrire int x,y; et non pas intx,y;
On peut écrire indi�éremment int n,compte,total,p; ou pour plus de lisibilitéint n, compte, total, p ;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 31
Éléments généraux d'un programme en langage C Divers éléments du code source
Les séparateurs
Dans notre langue écrite, les di�érents mots sont séparés par un espace,un signe de ponctuation ou une �n de ligne.
De même en langage C, Il existe certains séparateurs pour délimiter lesexpressions:Évidement, deux identi�cateurs successives entre lesquels la syntaxen'impose aucun signe particulier (, ou = ou ; ou * ou ( ) ou [ ] ou { })doivent impérativement être séparés soit par un espace, soit par une �nde ligne.
Dès que la syntaxe impose un séparateur quelconque, il n'est alors pasobligatoire de mettre des espaces supplémentaires, bien qu'en pratiquecela améliore la lisibilité du programme.
En langage C, chaque instruction se termine par un point-virgule ;
Exemple:On doit écrire int x,y; et non pas intx,y;
On peut écrire indi�éremment int n,compte,total,p; ou pour plus de lisibilitéint n, compte, total, p ;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 31
Éléments généraux d'un programme en langage C Divers éléments du code source
Les séparateurs
Dans notre langue écrite, les di�érents mots sont séparés par un espace,un signe de ponctuation ou une �n de ligne.
De même en langage C, Il existe certains séparateurs pour délimiter lesexpressions:Évidement, deux identi�cateurs successives entre lesquels la syntaxen'impose aucun signe particulier (, ou = ou ; ou * ou ( ) ou [ ] ou { })doivent impérativement être séparés soit par un espace, soit par une �nde ligne.
Dès que la syntaxe impose un séparateur quelconque, il n'est alors pasobligatoire de mettre des espaces supplémentaires, bien qu'en pratiquecela améliore la lisibilité du programme.
En langage C, chaque instruction se termine par un point-virgule ;
Exemple:On doit écrire int x,y; et non pas intx,y;
On peut écrire indi�éremment int n,compte,total,p; ou pour plus de lisibilitéint n, compte, total, p ;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 31
Éléments généraux d'un programme en langage C Divers éléments du code source
Les séparateurs
Dans notre langue écrite, les di�érents mots sont séparés par un espace,un signe de ponctuation ou une �n de ligne.
De même en langage C, Il existe certains séparateurs pour délimiter lesexpressions:Évidement, deux identi�cateurs successives entre lesquels la syntaxen'impose aucun signe particulier (, ou = ou ; ou * ou ( ) ou [ ] ou { })doivent impérativement être séparés soit par un espace, soit par une �nde ligne.
Dès que la syntaxe impose un séparateur quelconque, il n'est alors pasobligatoire de mettre des espaces supplémentaires, bien qu'en pratiquecela améliore la lisibilité du programme.
En langage C, chaque instruction se termine par un point-virgule ;
Exemple:On doit écrire int x,y; et non pas intx,y;
On peut écrire indi�éremment int n,compte,total,p; ou pour plus de lisibilitéint n, compte, total, p ;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 31
Éléments généraux d'un programme en langage C Divers éléments du code source
Les séparateurs
Dans notre langue écrite, les di�érents mots sont séparés par un espace,un signe de ponctuation ou une �n de ligne.
De même en langage C, Il existe certains séparateurs pour délimiter lesexpressions:Évidement, deux identi�cateurs successives entre lesquels la syntaxen'impose aucun signe particulier (, ou = ou ; ou * ou ( ) ou [ ] ou { })doivent impérativement être séparés soit par un espace, soit par une �nde ligne.
Dès que la syntaxe impose un séparateur quelconque, il n'est alors pasobligatoire de mettre des espaces supplémentaires, bien qu'en pratiquecela améliore la lisibilité du programme.
En langage C, chaque instruction se termine par un point-virgule ;
Exemple:On doit écrire int x,y; et non pas intx,y;
On peut écrire indi�éremment int n,compte,total,p; ou pour plus de lisibilitéint n, compte, total, p ;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 31
Éléments généraux d'un programme en langage C Divers éléments du code source
Les séparateurs
Dans notre langue écrite, les di�érents mots sont séparés par un espace,un signe de ponctuation ou une �n de ligne.
De même en langage C, Il existe certains séparateurs pour délimiter lesexpressions:Évidement, deux identi�cateurs successives entre lesquels la syntaxen'impose aucun signe particulier (, ou = ou ; ou * ou ( ) ou [ ] ou { })doivent impérativement être séparés soit par un espace, soit par une �nde ligne.
Dès que la syntaxe impose un séparateur quelconque, il n'est alors pasobligatoire de mettre des espaces supplémentaires, bien qu'en pratiquecela améliore la lisibilité du programme.
En langage C, chaque instruction se termine par un point-virgule ;
Exemple:On doit écrire int x,y; et non pas intx,y;
On peut écrire indi�éremment int n,compte,total,p; ou pour plus de lisibilitéint n, compte, total, p ;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 31
Éléments généraux d'un programme en langage C Divers éléments du code source
Les séparateurs
Dans notre langue écrite, les di�érents mots sont séparés par un espace,un signe de ponctuation ou une �n de ligne.
De même en langage C, Il existe certains séparateurs pour délimiter lesexpressions:Évidement, deux identi�cateurs successives entre lesquels la syntaxen'impose aucun signe particulier (, ou = ou ; ou * ou ( ) ou [ ] ou { })doivent impérativement être séparés soit par un espace, soit par une �nde ligne.
Dès que la syntaxe impose un séparateur quelconque, il n'est alors pasobligatoire de mettre des espaces supplémentaires, bien qu'en pratiquecela améliore la lisibilité du programme.
En langage C, chaque instruction se termine par un point-virgule ;
Exemple:On doit écrire int x,y; et non pas intx,y;
On peut écrire indi�éremment int n,compte,total,p; ou pour plus de lisibilitéint n, compte, total, p ;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 31
Éléments généraux d'un programme en langage C Divers éléments du code source
Le format libre
Le langage C autorise une mise en page parfaitement libre:Une instruction peut s'étendre sur un nombre quelconque de lignes
Une même ligne peut comporter autant d'instructions que souhaité.
Les �ns de ligne en code source ne jouent pas de rôle particulier, si ce n'estcelui de séparateur, au même titre qu'un espace,
Il existe cependant quelques exceptions:Évidement, un identi�cateur (nom de variable ou de fonction) ne peut êtrecoupé en introduisant une �n de ligne au milieu.
Les constantes chaînes de caractères (qui sont délimité par " ") doiventimpérativement être écrites en une seule ligne (sans introduire de �nsde ligne).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 32
Éléments généraux d'un programme en langage C Divers éléments du code source
Le format libre
Le langage C autorise une mise en page parfaitement libre:Une instruction peut s'étendre sur un nombre quelconque de lignes
Une même ligne peut comporter autant d'instructions que souhaité.
Les �ns de ligne en code source ne jouent pas de rôle particulier, si ce n'estcelui de séparateur, au même titre qu'un espace,
Il existe cependant quelques exceptions:Évidement, un identi�cateur (nom de variable ou de fonction) ne peut êtrecoupé en introduisant une �n de ligne au milieu.
Les constantes chaînes de caractères (qui sont délimité par " ") doiventimpérativement être écrites en une seule ligne (sans introduire de �nsde ligne).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 32
Éléments généraux d'un programme en langage C Divers éléments du code source
Le format libre
Le langage C autorise une mise en page parfaitement libre:Une instruction peut s'étendre sur un nombre quelconque de lignes
Une même ligne peut comporter autant d'instructions que souhaité.
Les �ns de ligne en code source ne jouent pas de rôle particulier, si ce n'estcelui de séparateur, au même titre qu'un espace,
Il existe cependant quelques exceptions:Évidement, un identi�cateur (nom de variable ou de fonction) ne peut êtrecoupé en introduisant une �n de ligne au milieu.
Les constantes chaînes de caractères (qui sont délimité par " ") doiventimpérativement être écrites en une seule ligne (sans introduire de �nsde ligne).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 32
Éléments généraux d'un programme en langage C Divers éléments du code source
Le format libre
Le langage C autorise une mise en page parfaitement libre:Une instruction peut s'étendre sur un nombre quelconque de lignes
Une même ligne peut comporter autant d'instructions que souhaité.
Les �ns de ligne en code source ne jouent pas de rôle particulier, si ce n'estcelui de séparateur, au même titre qu'un espace,
Il existe cependant quelques exceptions:Évidement, un identi�cateur (nom de variable ou de fonction) ne peut êtrecoupé en introduisant une �n de ligne au milieu.
Les constantes chaînes de caractères (qui sont délimité par " ") doiventimpérativement être écrites en une seule ligne (sans introduire de �nsde ligne).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 32
Éléments généraux d'un programme en langage C Divers éléments du code source
Le format libre
Le langage C autorise une mise en page parfaitement libre:Une instruction peut s'étendre sur un nombre quelconque de lignes
Une même ligne peut comporter autant d'instructions que souhaité.
Les �ns de ligne en code source ne jouent pas de rôle particulier, si ce n'estcelui de séparateur, au même titre qu'un espace,
Il existe cependant quelques exceptions:Évidement, un identi�cateur (nom de variable ou de fonction) ne peut êtrecoupé en introduisant une �n de ligne au milieu.
Les constantes chaînes de caractères (qui sont délimité par " ") doiventimpérativement être écrites en une seule ligne (sans introduire de �nsde ligne).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 32
Éléments généraux d'un programme en langage C Divers éléments du code source
Le format libre
Le langage C autorise une mise en page parfaitement libre:Une instruction peut s'étendre sur un nombre quelconque de lignes
Une même ligne peut comporter autant d'instructions que souhaité.
Les �ns de ligne en code source ne jouent pas de rôle particulier, si ce n'estcelui de séparateur, au même titre qu'un espace,
Il existe cependant quelques exceptions:Évidement, un identi�cateur (nom de variable ou de fonction) ne peut êtrecoupé en introduisant une �n de ligne au milieu.
Les constantes chaînes de caractères (qui sont délimité par " ") doiventimpérativement être écrites en une seule ligne (sans introduire de �nsde ligne).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 32
Éléments généraux d'un programme en langage C Divers éléments du code source
Le format libre
Le langage C autorise une mise en page parfaitement libre:Une instruction peut s'étendre sur un nombre quelconque de lignes
Une même ligne peut comporter autant d'instructions que souhaité.
Les �ns de ligne en code source ne jouent pas de rôle particulier, si ce n'estcelui de séparateur, au même titre qu'un espace,
Il existe cependant quelques exceptions:Évidement, un identi�cateur (nom de variable ou de fonction) ne peut êtrecoupé en introduisant une �n de ligne au milieu.
Les constantes chaînes de caractères (qui sont délimité par " ") doiventimpérativement être écrites en une seule ligne (sans introduire de �nsde ligne).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 32
Éléments généraux d'un programme en langage C Divers éléments du code source
Le format libre
La liberté de mise en page n'est pas recommandée car elle aboutit à desprogrammes peu lisibles. Le programme précédent réécrit librementdonne:
N. Alioua Chapitre 1: Langage C - introduction et notions de base 33
Éléments généraux d'un programme en langage C Divers éléments du code source
Les directives à destination du préprocesseur
#include<stdio.h> est une directive qui sera prise en compte avant latraduction (compilation) du programme.
Les directives sont soumises à certaines règles:Elles doivent être écrites à raison d'une par ligne
Elles doivent obligatoirement commencer en début de ligne (pas d'espaceavant # ).
Elles ne sont pas suivis par un point-virgule, car se ne sont pas desinstructions
On peut les placer à n'importe quel endroit du programme, sachant qu'ellesne s'appliquent qu'à la partie du programme qui les succède.
Il est toutefois préférable de les placer au début du �chier source, avant leprogramme principal (c-à-d la fonction main).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 34
Éléments généraux d'un programme en langage C Divers éléments du code source
Les directives à destination du préprocesseur
#include<stdio.h> est une directive qui sera prise en compte avant latraduction (compilation) du programme.
Les directives sont soumises à certaines règles:Elles doivent être écrites à raison d'une par ligne
Elles doivent obligatoirement commencer en début de ligne (pas d'espaceavant # ).
Elles ne sont pas suivis par un point-virgule, car se ne sont pas desinstructions
On peut les placer à n'importe quel endroit du programme, sachant qu'ellesne s'appliquent qu'à la partie du programme qui les succède.
Il est toutefois préférable de les placer au début du �chier source, avant leprogramme principal (c-à-d la fonction main).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 34
Éléments généraux d'un programme en langage C Divers éléments du code source
Les directives à destination du préprocesseur
#include<stdio.h> est une directive qui sera prise en compte avant latraduction (compilation) du programme.
Les directives sont soumises à certaines règles:Elles doivent être écrites à raison d'une par ligne
Elles doivent obligatoirement commencer en début de ligne (pas d'espaceavant # ).
Elles ne sont pas suivis par un point-virgule, car se ne sont pas desinstructions
On peut les placer à n'importe quel endroit du programme, sachant qu'ellesne s'appliquent qu'à la partie du programme qui les succède.
Il est toutefois préférable de les placer au début du �chier source, avant leprogramme principal (c-à-d la fonction main).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 34
Éléments généraux d'un programme en langage C Divers éléments du code source
Les directives à destination du préprocesseur
#include<stdio.h> est une directive qui sera prise en compte avant latraduction (compilation) du programme.
Les directives sont soumises à certaines règles:Elles doivent être écrites à raison d'une par ligne
Elles doivent obligatoirement commencer en début de ligne (pas d'espaceavant # ).
Elles ne sont pas suivis par un point-virgule, car se ne sont pas desinstructions
On peut les placer à n'importe quel endroit du programme, sachant qu'ellesne s'appliquent qu'à la partie du programme qui les succède.
Il est toutefois préférable de les placer au début du �chier source, avant leprogramme principal (c-à-d la fonction main).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 34
Éléments généraux d'un programme en langage C Divers éléments du code source
Les directives à destination du préprocesseur
#include<stdio.h> est une directive qui sera prise en compte avant latraduction (compilation) du programme.
Les directives sont soumises à certaines règles:Elles doivent être écrites à raison d'une par ligne
Elles doivent obligatoirement commencer en début de ligne (pas d'espaceavant # ).
Elles ne sont pas suivis par un point-virgule, car se ne sont pas desinstructions
On peut les placer à n'importe quel endroit du programme, sachant qu'ellesne s'appliquent qu'à la partie du programme qui les succède.
Il est toutefois préférable de les placer au début du �chier source, avant leprogramme principal (c-à-d la fonction main).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 34
Éléments généraux d'un programme en langage C Divers éléments du code source
Les directives à destination du préprocesseur
#include<stdio.h> est une directive qui sera prise en compte avant latraduction (compilation) du programme.
Les directives sont soumises à certaines règles:Elles doivent être écrites à raison d'une par ligne
Elles doivent obligatoirement commencer en début de ligne (pas d'espaceavant # ).
Elles ne sont pas suivis par un point-virgule, car se ne sont pas desinstructions
On peut les placer à n'importe quel endroit du programme, sachant qu'ellesne s'appliquent qu'à la partie du programme qui les succède.
Il est toutefois préférable de les placer au début du �chier source, avant leprogramme principal (c-à-d la fonction main).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 34
Éléments généraux d'un programme en langage C Divers éléments du code source
Les directives à destination du préprocesseur
#include<stdio.h> est une directive qui sera prise en compte avant latraduction (compilation) du programme.
Les directives sont soumises à certaines règles:Elles doivent être écrites à raison d'une par ligne
Elles doivent obligatoirement commencer en début de ligne (pas d'espaceavant # ).
Elles ne sont pas suivis par un point-virgule, car se ne sont pas desinstructions
On peut les placer à n'importe quel endroit du programme, sachant qu'ellesne s'appliquent qu'à la partie du programme qui les succède.
Il est toutefois préférable de les placer au début du �chier source, avant leprogramme principal (c-à-d la fonction main).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 34
Éléments généraux d'un programme en langage C Divers éléments du code source
Les directives à destination du préprocesseur
Pour utiliser une fonction prédé�nie dans le code source, il estnécessaire d'inclure les �chiers en-têtes, qui contiennent desdéclarations appropriées concernant ces fonctions
Exemple : stdio.h pour la fonction d'a�chage printf et math.h pourla fonction de la racine carrée sqrt
Un même �chier en-tête contient des déclarations de plusieurs fonctions.
En général, il est indispensable d'inclure stdio.h dans tout programme,puisqu'elle décrit les fonctions prédé�nies pour la saisie et l'a�chage.
Il existe également des directives à destination du préprocesseur pourdéclarer des constantes symboliques:Syntaxe: #de�ne NB 100 sert à remplacer systématiquement, dans toute lasuite du programme, le symbole NB par 100
Les constantes symboliques permettent une meilleur adaptabilité desprogrammes, car au besoin, on pourra remplacer NB par n'importe quelnombre!
N. Alioua Chapitre 1: Langage C - introduction et notions de base 35
Éléments généraux d'un programme en langage C Divers éléments du code source
Les directives à destination du préprocesseur
Pour utiliser une fonction prédé�nie dans le code source, il estnécessaire d'inclure les �chiers en-têtes, qui contiennent desdéclarations appropriées concernant ces fonctions
Exemple : stdio.h pour la fonction d'a�chage printf et math.h pourla fonction de la racine carrée sqrt
Un même �chier en-tête contient des déclarations de plusieurs fonctions.
En général, il est indispensable d'inclure stdio.h dans tout programme,puisqu'elle décrit les fonctions prédé�nies pour la saisie et l'a�chage.
Il existe également des directives à destination du préprocesseur pourdéclarer des constantes symboliques:Syntaxe: #de�ne NB 100 sert à remplacer systématiquement, dans toute lasuite du programme, le symbole NB par 100
Les constantes symboliques permettent une meilleur adaptabilité desprogrammes, car au besoin, on pourra remplacer NB par n'importe quelnombre!
N. Alioua Chapitre 1: Langage C - introduction et notions de base 35
Éléments généraux d'un programme en langage C Divers éléments du code source
Les directives à destination du préprocesseur
Pour utiliser une fonction prédé�nie dans le code source, il estnécessaire d'inclure les �chiers en-têtes, qui contiennent desdéclarations appropriées concernant ces fonctions
Exemple : stdio.h pour la fonction d'a�chage printf et math.h pourla fonction de la racine carrée sqrt
Un même �chier en-tête contient des déclarations de plusieurs fonctions.
En général, il est indispensable d'inclure stdio.h dans tout programme,puisqu'elle décrit les fonctions prédé�nies pour la saisie et l'a�chage.
Il existe également des directives à destination du préprocesseur pourdéclarer des constantes symboliques:Syntaxe: #de�ne NB 100 sert à remplacer systématiquement, dans toute lasuite du programme, le symbole NB par 100
Les constantes symboliques permettent une meilleur adaptabilité desprogrammes, car au besoin, on pourra remplacer NB par n'importe quelnombre!
N. Alioua Chapitre 1: Langage C - introduction et notions de base 35
Éléments généraux d'un programme en langage C Divers éléments du code source
Les directives à destination du préprocesseur
Pour utiliser une fonction prédé�nie dans le code source, il estnécessaire d'inclure les �chiers en-têtes, qui contiennent desdéclarations appropriées concernant ces fonctions
Exemple : stdio.h pour la fonction d'a�chage printf et math.h pourla fonction de la racine carrée sqrt
Un même �chier en-tête contient des déclarations de plusieurs fonctions.
En général, il est indispensable d'inclure stdio.h dans tout programme,puisqu'elle décrit les fonctions prédé�nies pour la saisie et l'a�chage.
Il existe également des directives à destination du préprocesseur pourdéclarer des constantes symboliques:Syntaxe: #de�ne NB 100 sert à remplacer systématiquement, dans toute lasuite du programme, le symbole NB par 100
Les constantes symboliques permettent une meilleur adaptabilité desprogrammes, car au besoin, on pourra remplacer NB par n'importe quelnombre!
N. Alioua Chapitre 1: Langage C - introduction et notions de base 35
Éléments généraux d'un programme en langage C Divers éléments du code source
Les directives à destination du préprocesseur
Pour utiliser une fonction prédé�nie dans le code source, il estnécessaire d'inclure les �chiers en-têtes, qui contiennent desdéclarations appropriées concernant ces fonctions
Exemple : stdio.h pour la fonction d'a�chage printf et math.h pourla fonction de la racine carrée sqrt
Un même �chier en-tête contient des déclarations de plusieurs fonctions.
En général, il est indispensable d'inclure stdio.h dans tout programme,puisqu'elle décrit les fonctions prédé�nies pour la saisie et l'a�chage.
Il existe également des directives à destination du préprocesseur pourdéclarer des constantes symboliques:Syntaxe: #de�ne NB 100 sert à remplacer systématiquement, dans toute lasuite du programme, le symbole NB par 100
Les constantes symboliques permettent une meilleur adaptabilité desprogrammes, car au besoin, on pourra remplacer NB par n'importe quelnombre!
N. Alioua Chapitre 1: Langage C - introduction et notions de base 35
Éléments généraux d'un programme en langage C Divers éléments du code source
Les directives à destination du préprocesseur
Pour utiliser une fonction prédé�nie dans le code source, il estnécessaire d'inclure les �chiers en-têtes, qui contiennent desdéclarations appropriées concernant ces fonctions
Exemple : stdio.h pour la fonction d'a�chage printf et math.h pourla fonction de la racine carrée sqrt
Un même �chier en-tête contient des déclarations de plusieurs fonctions.
En général, il est indispensable d'inclure stdio.h dans tout programme,puisqu'elle décrit les fonctions prédé�nies pour la saisie et l'a�chage.
Il existe également des directives à destination du préprocesseur pourdéclarer des constantes symboliques:Syntaxe: #de�ne NB 100 sert à remplacer systématiquement, dans toute lasuite du programme, le symbole NB par 100
Les constantes symboliques permettent une meilleur adaptabilité desprogrammes, car au besoin, on pourra remplacer NB par n'importe quelnombre!
N. Alioua Chapitre 1: Langage C - introduction et notions de base 35
Éléments généraux d'un programme en langage C Divers éléments du code source
Les directives à destination du préprocesseur
Pour utiliser une fonction prédé�nie dans le code source, il estnécessaire d'inclure les �chiers en-têtes, qui contiennent desdéclarations appropriées concernant ces fonctions
Exemple : stdio.h pour la fonction d'a�chage printf et math.h pourla fonction de la racine carrée sqrt
Un même �chier en-tête contient des déclarations de plusieurs fonctions.
En général, il est indispensable d'inclure stdio.h dans tout programme,puisqu'elle décrit les fonctions prédé�nies pour la saisie et l'a�chage.
Il existe également des directives à destination du préprocesseur pourdéclarer des constantes symboliques:Syntaxe: #de�ne NB 100 sert à remplacer systématiquement, dans toute lasuite du programme, le symbole NB par 100
Les constantes symboliques permettent une meilleur adaptabilité desprogrammes, car au besoin, on pourra remplacer NB par n'importe quelnombre!
N. Alioua Chapitre 1: Langage C - introduction et notions de base 35
Éléments généraux d'un programme en langage C Divers éléments du code source
Commentaires en C
Les commentaires sont des instructions non prise en compte par leCompilateur, qui servent à ajouter des remarques concernant le code.
En C, il y a deux types de commentaires :Commentaire multi-ligne. Syntaxe :/* commentaire ligne 1commentaire ligne 2...commentaire ligne n */
Commentaire abrégé. Syntaxe : // commentaire sur une seule ligne.Ce type de commentaire a été introduit dans la norme C99.Tout ce qui suit les caractères // jusqu'à la �n de la ligne est considérécomme un commentaire
N. Alioua Chapitre 1: Langage C - introduction et notions de base 36
Éléments généraux d'un programme en langage C Divers éléments du code source
Commentaires en C
Les commentaires sont des instructions non prise en compte par leCompilateur, qui servent à ajouter des remarques concernant le code.
En C, il y a deux types de commentaires :Commentaire multi-ligne. Syntaxe :/* commentaire ligne 1commentaire ligne 2...commentaire ligne n */
Commentaire abrégé. Syntaxe : // commentaire sur une seule ligne.Ce type de commentaire a été introduit dans la norme C99.Tout ce qui suit les caractères // jusqu'à la �n de la ligne est considérécomme un commentaire
N. Alioua Chapitre 1: Langage C - introduction et notions de base 36
Éléments généraux d'un programme en langage C Divers éléments du code source
Commentaires en C
Les commentaires sont des instructions non prise en compte par leCompilateur, qui servent à ajouter des remarques concernant le code.
En C, il y a deux types de commentaires :Commentaire multi-ligne. Syntaxe :/* commentaire ligne 1commentaire ligne 2...commentaire ligne n */
Commentaire abrégé. Syntaxe : // commentaire sur une seule ligne.Ce type de commentaire a été introduit dans la norme C99.Tout ce qui suit les caractères // jusqu'à la �n de la ligne est considérécomme un commentaire
N. Alioua Chapitre 1: Langage C - introduction et notions de base 36
Éléments généraux d'un programme en langage C Divers éléments du code source
Commentaires en C
Les commentaires sont des instructions non prise en compte par leCompilateur, qui servent à ajouter des remarques concernant le code.
En C, il y a deux types de commentaires :Commentaire multi-ligne. Syntaxe :/* commentaire ligne 1commentaire ligne 2...commentaire ligne n */
Commentaire abrégé. Syntaxe : // commentaire sur une seule ligne.Ce type de commentaire a été introduit dans la norme C99.Tout ce qui suit les caractères // jusqu'à la �n de la ligne est considérécomme un commentaire
N. Alioua Chapitre 1: Langage C - introduction et notions de base 36
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage CExemple de programmeDivers éléments du code sourceÉtapes de création d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 37
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
Vue générale
La manière de développer et d'utiliser un programme en langage Cdépend naturellement de l'environnement de programmation dans lequelon travaille.
Cependant, il existe quelques indications concernant les grandes étapesde la création d'un programme: édition du programme, compilationet édition de liens.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 38
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
L'édition du programme
L'édition du programme (appelée aussi saisie du programme) consiste àcréer, à partir d'un clavier, le texte d'un programme qu'on nommeprogramme ou code source .
En général, ce texte sera conservé dans un �chier appelé �chier source.
Chaque système possède ses propres conventions de dénomination des�chiers.
En général, un �chier peut, en plus de son nom, être caractérisé par ungroupe de caractères qu'on appelle une extension ou un type de�chier
La plupart du temps, en langage C, les �chiers source porterontl'extension C.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 39
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
L'édition du programme
L'édition du programme (appelée aussi saisie du programme) consiste àcréer, à partir d'un clavier, le texte d'un programme qu'on nommeprogramme ou code source .
En général, ce texte sera conservé dans un �chier appelé �chier source.
Chaque système possède ses propres conventions de dénomination des�chiers.
En général, un �chier peut, en plus de son nom, être caractérisé par ungroupe de caractères qu'on appelle une extension ou un type de�chier
La plupart du temps, en langage C, les �chiers source porterontl'extension C.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 39
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
L'édition du programme
L'édition du programme (appelée aussi saisie du programme) consiste àcréer, à partir d'un clavier, le texte d'un programme qu'on nommeprogramme ou code source .
En général, ce texte sera conservé dans un �chier appelé �chier source.
Chaque système possède ses propres conventions de dénomination des�chiers.
En général, un �chier peut, en plus de son nom, être caractérisé par ungroupe de caractères qu'on appelle une extension ou un type de�chier
La plupart du temps, en langage C, les �chiers source porterontl'extension C.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 39
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
L'édition du programme
L'édition du programme (appelée aussi saisie du programme) consiste àcréer, à partir d'un clavier, le texte d'un programme qu'on nommeprogramme ou code source .
En général, ce texte sera conservé dans un �chier appelé �chier source.
Chaque système possède ses propres conventions de dénomination des�chiers.
En général, un �chier peut, en plus de son nom, être caractérisé par ungroupe de caractères qu'on appelle une extension ou un type de�chier
La plupart du temps, en langage C, les �chiers source porterontl'extension C.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 39
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
L'édition du programme
L'édition du programme (appelée aussi saisie du programme) consiste àcréer, à partir d'un clavier, le texte d'un programme qu'on nommeprogramme ou code source .
En général, ce texte sera conservé dans un �chier appelé �chier source.
Chaque système possède ses propres conventions de dénomination des�chiers.
En général, un �chier peut, en plus de son nom, être caractérisé par ungroupe de caractères qu'on appelle une extension ou un type de�chier
La plupart du temps, en langage C, les �chiers source porterontl'extension C.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 39
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
La compilation
Elle consiste à traduire le programme source en langage machine, enfaisant appel à un programme nommé compilateur.
En langage C, compte tenu de l'existence d'un préprocesseur, cetteopération de compilation comporte deux étapes : Traitement par lepréprocesseur et compilation proprement dite
Traitement par le préprocesseur :Le préprocesseur exécute simplement les directives qui le concernent, qu'ilreconnaît grâce au caractère #.
Il produit, en résultat, un programme source en langage C pur.
Il s'agit toujours d'un vrai texte, au même titre qu'un programme source
Compilation proprement dite :E�ectue la traduction en langage machine du texte en langage C fourni parle préprocesseur.
Le résultat de la compilation porte le nom de module objet, reconnu parl'extension OBJ ou O.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 40
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
La compilation
Elle consiste à traduire le programme source en langage machine, enfaisant appel à un programme nommé compilateur.
En langage C, compte tenu de l'existence d'un préprocesseur, cetteopération de compilation comporte deux étapes : Traitement par lepréprocesseur et compilation proprement dite
Traitement par le préprocesseur :Le préprocesseur exécute simplement les directives qui le concernent, qu'ilreconnaît grâce au caractère #.
Il produit, en résultat, un programme source en langage C pur.
Il s'agit toujours d'un vrai texte, au même titre qu'un programme source
Compilation proprement dite :E�ectue la traduction en langage machine du texte en langage C fourni parle préprocesseur.
Le résultat de la compilation porte le nom de module objet, reconnu parl'extension OBJ ou O.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 40
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
La compilation
Elle consiste à traduire le programme source en langage machine, enfaisant appel à un programme nommé compilateur.
En langage C, compte tenu de l'existence d'un préprocesseur, cetteopération de compilation comporte deux étapes : Traitement par lepréprocesseur et compilation proprement dite
Traitement par le préprocesseur :Le préprocesseur exécute simplement les directives qui le concernent, qu'ilreconnaît grâce au caractère #.
Il produit, en résultat, un programme source en langage C pur.
Il s'agit toujours d'un vrai texte, au même titre qu'un programme source
Compilation proprement dite :E�ectue la traduction en langage machine du texte en langage C fourni parle préprocesseur.
Le résultat de la compilation porte le nom de module objet, reconnu parl'extension OBJ ou O.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 40
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
La compilation
Elle consiste à traduire le programme source en langage machine, enfaisant appel à un programme nommé compilateur.
En langage C, compte tenu de l'existence d'un préprocesseur, cetteopération de compilation comporte deux étapes : Traitement par lepréprocesseur et compilation proprement dite
Traitement par le préprocesseur :Le préprocesseur exécute simplement les directives qui le concernent, qu'ilreconnaît grâce au caractère #.
Il produit, en résultat, un programme source en langage C pur.
Il s'agit toujours d'un vrai texte, au même titre qu'un programme source
Compilation proprement dite :E�ectue la traduction en langage machine du texte en langage C fourni parle préprocesseur.
Le résultat de la compilation porte le nom de module objet, reconnu parl'extension OBJ ou O.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 40
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
La compilation
Elle consiste à traduire le programme source en langage machine, enfaisant appel à un programme nommé compilateur.
En langage C, compte tenu de l'existence d'un préprocesseur, cetteopération de compilation comporte deux étapes : Traitement par lepréprocesseur et compilation proprement dite
Traitement par le préprocesseur :Le préprocesseur exécute simplement les directives qui le concernent, qu'ilreconnaît grâce au caractère #.
Il produit, en résultat, un programme source en langage C pur.
Il s'agit toujours d'un vrai texte, au même titre qu'un programme source
Compilation proprement dite :E�ectue la traduction en langage machine du texte en langage C fourni parle préprocesseur.
Le résultat de la compilation porte le nom de module objet, reconnu parl'extension OBJ ou O.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 40
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
La compilation
Elle consiste à traduire le programme source en langage machine, enfaisant appel à un programme nommé compilateur.
En langage C, compte tenu de l'existence d'un préprocesseur, cetteopération de compilation comporte deux étapes : Traitement par lepréprocesseur et compilation proprement dite
Traitement par le préprocesseur :Le préprocesseur exécute simplement les directives qui le concernent, qu'ilreconnaît grâce au caractère #.
Il produit, en résultat, un programme source en langage C pur.
Il s'agit toujours d'un vrai texte, au même titre qu'un programme source
Compilation proprement dite :E�ectue la traduction en langage machine du texte en langage C fourni parle préprocesseur.
Le résultat de la compilation porte le nom de module objet, reconnu parl'extension OBJ ou O.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 40
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
La compilation
Elle consiste à traduire le programme source en langage machine, enfaisant appel à un programme nommé compilateur.
En langage C, compte tenu de l'existence d'un préprocesseur, cetteopération de compilation comporte deux étapes : Traitement par lepréprocesseur et compilation proprement dite
Traitement par le préprocesseur :Le préprocesseur exécute simplement les directives qui le concernent, qu'ilreconnaît grâce au caractère #.
Il produit, en résultat, un programme source en langage C pur.
Il s'agit toujours d'un vrai texte, au même titre qu'un programme source
Compilation proprement dite :E�ectue la traduction en langage machine du texte en langage C fourni parle préprocesseur.
Le résultat de la compilation porte le nom de module objet, reconnu parl'extension OBJ ou O.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 40
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
La compilation
Elle consiste à traduire le programme source en langage machine, enfaisant appel à un programme nommé compilateur.
En langage C, compte tenu de l'existence d'un préprocesseur, cetteopération de compilation comporte deux étapes : Traitement par lepréprocesseur et compilation proprement dite
Traitement par le préprocesseur :Le préprocesseur exécute simplement les directives qui le concernent, qu'ilreconnaît grâce au caractère #.
Il produit, en résultat, un programme source en langage C pur.
Il s'agit toujours d'un vrai texte, au même titre qu'un programme source
Compilation proprement dite :E�ectue la traduction en langage machine du texte en langage C fourni parle préprocesseur.
Le résultat de la compilation porte le nom de module objet, reconnu parl'extension OBJ ou O.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 40
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
La compilation
Elle consiste à traduire le programme source en langage machine, enfaisant appel à un programme nommé compilateur.
En langage C, compte tenu de l'existence d'un préprocesseur, cetteopération de compilation comporte deux étapes : Traitement par lepréprocesseur et compilation proprement dite
Traitement par le préprocesseur :Le préprocesseur exécute simplement les directives qui le concernent, qu'ilreconnaît grâce au caractère #.
Il produit, en résultat, un programme source en langage C pur.
Il s'agit toujours d'un vrai texte, au même titre qu'un programme source
Compilation proprement dite :E�ectue la traduction en langage machine du texte en langage C fourni parle préprocesseur.
Le résultat de la compilation porte le nom de module objet, reconnu parl'extension OBJ ou O.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 40
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
L'édition de liens
Le module objet créé par le compilateur n'est pas directementexécutable. Il lui manque, au moins, les di�érents modules objetcorrespondant aux fonctions prédé�nies (appelées aussi fonctionsstandard ) utilisées par le programme (comme la fonction d'a�chageprintf).
C'est le rôle de l'éditeur de liens, qui recherche dans la bibliothèquestandard (stdio.h pour printf) les modules objet nécessaires.
Le résultat de l'édition de liens est ce que l'on nomme un programmeexécutable.
Un programme exécutable est un ensemble autonome d'instructionsen langage machine.
Si ce programme exécutable est rangé dans un �chier, il pourra êtreexécuté plus tard sans faire appel à un quelconque composant del'environnement de programmation en C.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 41
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
L'édition de liens
Le module objet créé par le compilateur n'est pas directementexécutable. Il lui manque, au moins, les di�érents modules objetcorrespondant aux fonctions prédé�nies (appelées aussi fonctionsstandard ) utilisées par le programme (comme la fonction d'a�chageprintf).
C'est le rôle de l'éditeur de liens, qui recherche dans la bibliothèquestandard (stdio.h pour printf) les modules objet nécessaires.
Le résultat de l'édition de liens est ce que l'on nomme un programmeexécutable.
Un programme exécutable est un ensemble autonome d'instructionsen langage machine.
Si ce programme exécutable est rangé dans un �chier, il pourra êtreexécuté plus tard sans faire appel à un quelconque composant del'environnement de programmation en C.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 41
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
L'édition de liens
Le module objet créé par le compilateur n'est pas directementexécutable. Il lui manque, au moins, les di�érents modules objetcorrespondant aux fonctions prédé�nies (appelées aussi fonctionsstandard ) utilisées par le programme (comme la fonction d'a�chageprintf).
C'est le rôle de l'éditeur de liens, qui recherche dans la bibliothèquestandard (stdio.h pour printf) les modules objet nécessaires.
Le résultat de l'édition de liens est ce que l'on nomme un programmeexécutable.
Un programme exécutable est un ensemble autonome d'instructionsen langage machine.
Si ce programme exécutable est rangé dans un �chier, il pourra êtreexécuté plus tard sans faire appel à un quelconque composant del'environnement de programmation en C.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 41
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
L'édition de liens
Le module objet créé par le compilateur n'est pas directementexécutable. Il lui manque, au moins, les di�érents modules objetcorrespondant aux fonctions prédé�nies (appelées aussi fonctionsstandard ) utilisées par le programme (comme la fonction d'a�chageprintf).
C'est le rôle de l'éditeur de liens, qui recherche dans la bibliothèquestandard (stdio.h pour printf) les modules objet nécessaires.
Le résultat de l'édition de liens est ce que l'on nomme un programmeexécutable.
Un programme exécutable est un ensemble autonome d'instructionsen langage machine.
Si ce programme exécutable est rangé dans un �chier, il pourra êtreexécuté plus tard sans faire appel à un quelconque composant del'environnement de programmation en C.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 41
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
L'édition de liens
Le module objet créé par le compilateur n'est pas directementexécutable. Il lui manque, au moins, les di�érents modules objetcorrespondant aux fonctions prédé�nies (appelées aussi fonctionsstandard ) utilisées par le programme (comme la fonction d'a�chageprintf).
C'est le rôle de l'éditeur de liens, qui recherche dans la bibliothèquestandard (stdio.h pour printf) les modules objet nécessaires.
Le résultat de l'édition de liens est ce que l'on nomme un programmeexécutable.
Un programme exécutable est un ensemble autonome d'instructionsen langage machine.
Si ce programme exécutable est rangé dans un �chier, il pourra êtreexécuté plus tard sans faire appel à un quelconque composant del'environnement de programmation en C.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 41
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
Résumé des étapes de programmation en C
Code source :série de commandes ou de déclarations qui indiquent à l'ordinateur lestaches qu'il devra exécuter. première étape du développement.
le code source est crée à l'aide d'un éditeur.
Éditeur :permet de créer le code source. C'est une sorte d'éditeur de texte
Compilation :opération réalisée par un compilateur qui transforme le �chier code sourceen un �chier objet contenant les mêmes instructions en langage machine.
Exécution :processus par lequel un ordinateur met en ÷uvre les instructions d'unprogramme informatique.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 42
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
Résumé des étapes de programmation en C
Code source :série de commandes ou de déclarations qui indiquent à l'ordinateur lestaches qu'il devra exécuter. première étape du développement.
le code source est crée à l'aide d'un éditeur.
Éditeur :permet de créer le code source. C'est une sorte d'éditeur de texte
Compilation :opération réalisée par un compilateur qui transforme le �chier code sourceen un �chier objet contenant les mêmes instructions en langage machine.
Exécution :processus par lequel un ordinateur met en ÷uvre les instructions d'unprogramme informatique.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 42
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
Résumé des étapes de programmation en C
Code source :série de commandes ou de déclarations qui indiquent à l'ordinateur lestaches qu'il devra exécuter. première étape du développement.
le code source est crée à l'aide d'un éditeur.
Éditeur :permet de créer le code source. C'est une sorte d'éditeur de texte
Compilation :opération réalisée par un compilateur qui transforme le �chier code sourceen un �chier objet contenant les mêmes instructions en langage machine.
Exécution :processus par lequel un ordinateur met en ÷uvre les instructions d'unprogramme informatique.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 42
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
Résumé des étapes de programmation en C
Code source :série de commandes ou de déclarations qui indiquent à l'ordinateur lestaches qu'il devra exécuter. première étape du développement.
le code source est crée à l'aide d'un éditeur.
Éditeur :permet de créer le code source. C'est une sorte d'éditeur de texte
Compilation :opération réalisée par un compilateur qui transforme le �chier code sourceen un �chier objet contenant les mêmes instructions en langage machine.
Exécution :processus par lequel un ordinateur met en ÷uvre les instructions d'unprogramme informatique.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 42
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
Résumé des étapes de programmation en C
Code source :série de commandes ou de déclarations qui indiquent à l'ordinateur lestaches qu'il devra exécuter. première étape du développement.
le code source est crée à l'aide d'un éditeur.
Éditeur :permet de créer le code source. C'est une sorte d'éditeur de texte
Compilation :opération réalisée par un compilateur qui transforme le �chier code sourceen un �chier objet contenant les mêmes instructions en langage machine.
Exécution :processus par lequel un ordinateur met en ÷uvre les instructions d'unprogramme informatique.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 42
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
Résumé des étapes de programmation en C
Code source :série de commandes ou de déclarations qui indiquent à l'ordinateur lestaches qu'il devra exécuter. première étape du développement.
le code source est crée à l'aide d'un éditeur.
Éditeur :permet de créer le code source. C'est une sorte d'éditeur de texte
Compilation :opération réalisée par un compilateur qui transforme le �chier code sourceen un �chier objet contenant les mêmes instructions en langage machine.
Exécution :processus par lequel un ordinateur met en ÷uvre les instructions d'unprogramme informatique.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 42
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
Résumé des étapes de programmation en C
Code source :série de commandes ou de déclarations qui indiquent à l'ordinateur lestaches qu'il devra exécuter. première étape du développement.
le code source est crée à l'aide d'un éditeur.
Éditeur :permet de créer le code source. C'est une sorte d'éditeur de texte
Compilation :opération réalisée par un compilateur qui transforme le �chier code sourceen un �chier objet contenant les mêmes instructions en langage machine.
Exécution :processus par lequel un ordinateur met en ÷uvre les instructions d'unprogramme informatique.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 42
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
Résumé des étapes de programmation en C
Code source :série de commandes ou de déclarations qui indiquent à l'ordinateur lestaches qu'il devra exécuter. première étape du développement.
le code source est crée à l'aide d'un éditeur.
Éditeur :permet de créer le code source. C'est une sorte d'éditeur de texte
Compilation :opération réalisée par un compilateur qui transforme le �chier code sourceen un �chier objet contenant les mêmes instructions en langage machine.
Exécution :processus par lequel un ordinateur met en ÷uvre les instructions d'unprogramme informatique.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 42
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
Résumé des étapes de programmation en C
Code source :série de commandes ou de déclarations qui indiquent à l'ordinateur lestaches qu'il devra exécuter. première étape du développement.
le code source est crée à l'aide d'un éditeur.
Éditeur :permet de créer le code source. C'est une sorte d'éditeur de texte
Compilation :opération réalisée par un compilateur qui transforme le �chier code sourceen un �chier objet contenant les mêmes instructions en langage machine.
Exécution :processus par lequel un ordinateur met en ÷uvre les instructions d'unprogramme informatique.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 42
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
Déroulement des étapes
1 Utiliser un éditeur pour créer le code source. Par convention, ce�chier source doit avoir l'extension .c
2 Compiler le programme. Si le compilateur ne rencontre pas d'erreurdans le code source, on obtient un �chier objet du même nom que le�chier source avec une extension .obj ou .o . Si le code source contientdes erreurs, le compilateur échoue et les a�che pour que leprogrammeur les corrige.
3 Exécuter le �chier objet. Si aucune erreur n'apparaît, on obtient unprogramme exécutable dans un �chier du même nom que le �chier objet(avec une extension .exe sous Windows).
4 Exécuter le �chier exécutable pour avoir les résultats du programme.
5 Contrôlez les résultats obtenus et recommencer à l'étape 1 si desmodi�cations sont nécessaires dans le �chier source.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 43
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
Déroulement des étapes
1 Utiliser un éditeur pour créer le code source. Par convention, ce�chier source doit avoir l'extension .c
2 Compiler le programme. Si le compilateur ne rencontre pas d'erreurdans le code source, on obtient un �chier objet du même nom que le�chier source avec une extension .obj ou .o . Si le code source contientdes erreurs, le compilateur échoue et les a�che pour que leprogrammeur les corrige.
3 Exécuter le �chier objet. Si aucune erreur n'apparaît, on obtient unprogramme exécutable dans un �chier du même nom que le �chier objet(avec une extension .exe sous Windows).
4 Exécuter le �chier exécutable pour avoir les résultats du programme.
5 Contrôlez les résultats obtenus et recommencer à l'étape 1 si desmodi�cations sont nécessaires dans le �chier source.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 43
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
Déroulement des étapes
1 Utiliser un éditeur pour créer le code source. Par convention, ce�chier source doit avoir l'extension .c
2 Compiler le programme. Si le compilateur ne rencontre pas d'erreurdans le code source, on obtient un �chier objet du même nom que le�chier source avec une extension .obj ou .o . Si le code source contientdes erreurs, le compilateur échoue et les a�che pour que leprogrammeur les corrige.
3 Exécuter le �chier objet. Si aucune erreur n'apparaît, on obtient unprogramme exécutable dans un �chier du même nom que le �chier objet(avec une extension .exe sous Windows).
4 Exécuter le �chier exécutable pour avoir les résultats du programme.
5 Contrôlez les résultats obtenus et recommencer à l'étape 1 si desmodi�cations sont nécessaires dans le �chier source.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 43
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
Déroulement des étapes
1 Utiliser un éditeur pour créer le code source. Par convention, ce�chier source doit avoir l'extension .c
2 Compiler le programme. Si le compilateur ne rencontre pas d'erreurdans le code source, on obtient un �chier objet du même nom que le�chier source avec une extension .obj ou .o . Si le code source contientdes erreurs, le compilateur échoue et les a�che pour que leprogrammeur les corrige.
3 Exécuter le �chier objet. Si aucune erreur n'apparaît, on obtient unprogramme exécutable dans un �chier du même nom que le �chier objet(avec une extension .exe sous Windows).
4 Exécuter le �chier exécutable pour avoir les résultats du programme.
5 Contrôlez les résultats obtenus et recommencer à l'étape 1 si desmodi�cations sont nécessaires dans le �chier source.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 43
Éléments généraux d'un programme en langage C Étapes de création d'un programme en langage C
Déroulement des étapes
1 Utiliser un éditeur pour créer le code source. Par convention, ce�chier source doit avoir l'extension .c
2 Compiler le programme. Si le compilateur ne rencontre pas d'erreurdans le code source, on obtient un �chier objet du même nom que le�chier source avec une extension .obj ou .o . Si le code source contientdes erreurs, le compilateur échoue et les a�che pour que leprogrammeur les corrige.
3 Exécuter le �chier objet. Si aucune erreur n'apparaît, on obtient unprogramme exécutable dans un �chier du même nom que le �chier objet(avec une extension .exe sous Windows).
4 Exécuter le �chier exécutable pour avoir les résultats du programme.
5 Contrôlez les résultats obtenus et recommencer à l'étape 1 si desmodi�cations sont nécessaires dans le �chier source.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 43
Les types de base en langage C
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage CTypes entierTypes �ottantType caractère
4 Les variables et les constantes en langage C
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 44
Les types de base en langage C
La notion de type
La mémoire centrale d'un ordinateur est composée d'un ensemble depositions binaires:On stock des bits (0 ou 1) dans ces positions.
Les bits sont regroupés en octets (8 bits)
Chaque octet est repéré par ce qu'on nomme son adresse.
L'ordinateur ne sait représenter et traiter que des informationsexprimées sous forme binaire:Toute information devra être codée sous cette forme.
Il ne su�t pas de connaître le contenu d'un emplacement de la mémoirepour lui donner une signi�cation.
Par exemple, si un octet contient (01001101)2, il peut correspondre à(77)10, mais il peut correspondre à une autre information (caractère M enASCII par exemple ou une partie d'un nombre réel)
On conclut qu'on ne peut pas attribuer une signi�cation à une informationbinaire tant qu'on ne connaît pas quel type d'information elle représente.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 45
Les types de base en langage C
La notion de type
La mémoire centrale d'un ordinateur est composée d'un ensemble depositions binaires:On stock des bits (0 ou 1) dans ces positions.
Les bits sont regroupés en octets (8 bits)
Chaque octet est repéré par ce qu'on nomme son adresse.
L'ordinateur ne sait représenter et traiter que des informationsexprimées sous forme binaire:Toute information devra être codée sous cette forme.
Il ne su�t pas de connaître le contenu d'un emplacement de la mémoirepour lui donner une signi�cation.
Par exemple, si un octet contient (01001101)2, il peut correspondre à(77)10, mais il peut correspondre à une autre information (caractère M enASCII par exemple ou une partie d'un nombre réel)
On conclut qu'on ne peut pas attribuer une signi�cation à une informationbinaire tant qu'on ne connaît pas quel type d'information elle représente.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 45
Les types de base en langage C
La notion de type
La mémoire centrale d'un ordinateur est composée d'un ensemble depositions binaires:On stock des bits (0 ou 1) dans ces positions.
Les bits sont regroupés en octets (8 bits)
Chaque octet est repéré par ce qu'on nomme son adresse.
L'ordinateur ne sait représenter et traiter que des informationsexprimées sous forme binaire:Toute information devra être codée sous cette forme.
Il ne su�t pas de connaître le contenu d'un emplacement de la mémoirepour lui donner une signi�cation.
Par exemple, si un octet contient (01001101)2, il peut correspondre à(77)10, mais il peut correspondre à une autre information (caractère M enASCII par exemple ou une partie d'un nombre réel)
On conclut qu'on ne peut pas attribuer une signi�cation à une informationbinaire tant qu'on ne connaît pas quel type d'information elle représente.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 45
Les types de base en langage C
La notion de type
La mémoire centrale d'un ordinateur est composée d'un ensemble depositions binaires:On stock des bits (0 ou 1) dans ces positions.
Les bits sont regroupés en octets (8 bits)
Chaque octet est repéré par ce qu'on nomme son adresse.
L'ordinateur ne sait représenter et traiter que des informationsexprimées sous forme binaire:Toute information devra être codée sous cette forme.
Il ne su�t pas de connaître le contenu d'un emplacement de la mémoirepour lui donner une signi�cation.
Par exemple, si un octet contient (01001101)2, il peut correspondre à(77)10, mais il peut correspondre à une autre information (caractère M enASCII par exemple ou une partie d'un nombre réel)
On conclut qu'on ne peut pas attribuer une signi�cation à une informationbinaire tant qu'on ne connaît pas quel type d'information elle représente.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 45
Les types de base en langage C
La notion de type
La mémoire centrale d'un ordinateur est composée d'un ensemble depositions binaires:On stock des bits (0 ou 1) dans ces positions.
Les bits sont regroupés en octets (8 bits)
Chaque octet est repéré par ce qu'on nomme son adresse.
L'ordinateur ne sait représenter et traiter que des informationsexprimées sous forme binaire:Toute information devra être codée sous cette forme.
Il ne su�t pas de connaître le contenu d'un emplacement de la mémoirepour lui donner une signi�cation.
Par exemple, si un octet contient (01001101)2, il peut correspondre à(77)10, mais il peut correspondre à une autre information (caractère M enASCII par exemple ou une partie d'un nombre réel)
On conclut qu'on ne peut pas attribuer une signi�cation à une informationbinaire tant qu'on ne connaît pas quel type d'information elle représente.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 45
Les types de base en langage C
La notion de type
La mémoire centrale d'un ordinateur est composée d'un ensemble depositions binaires:On stock des bits (0 ou 1) dans ces positions.
Les bits sont regroupés en octets (8 bits)
Chaque octet est repéré par ce qu'on nomme son adresse.
L'ordinateur ne sait représenter et traiter que des informationsexprimées sous forme binaire:Toute information devra être codée sous cette forme.
Il ne su�t pas de connaître le contenu d'un emplacement de la mémoirepour lui donner une signi�cation.
Par exemple, si un octet contient (01001101)2, il peut correspondre à(77)10, mais il peut correspondre à une autre information (caractère M enASCII par exemple ou une partie d'un nombre réel)
On conclut qu'on ne peut pas attribuer une signi�cation à une informationbinaire tant qu'on ne connaît pas quel type d'information elle représente.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 45
Les types de base en langage C
La notion de type
La mémoire centrale d'un ordinateur est composée d'un ensemble depositions binaires:On stock des bits (0 ou 1) dans ces positions.
Les bits sont regroupés en octets (8 bits)
Chaque octet est repéré par ce qu'on nomme son adresse.
L'ordinateur ne sait représenter et traiter que des informationsexprimées sous forme binaire:Toute information devra être codée sous cette forme.
Il ne su�t pas de connaître le contenu d'un emplacement de la mémoirepour lui donner une signi�cation.
Par exemple, si un octet contient (01001101)2, il peut correspondre à(77)10, mais il peut correspondre à une autre information (caractère M enASCII par exemple ou une partie d'un nombre réel)
On conclut qu'on ne peut pas attribuer une signi�cation à une informationbinaire tant qu'on ne connaît pas quel type d'information elle représente.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 45
Les types de base en langage C
La notion de type
La mémoire centrale d'un ordinateur est composée d'un ensemble depositions binaires:On stock des bits (0 ou 1) dans ces positions.
Les bits sont regroupés en octets (8 bits)
Chaque octet est repéré par ce qu'on nomme son adresse.
L'ordinateur ne sait représenter et traiter que des informationsexprimées sous forme binaire:Toute information devra être codée sous cette forme.
Il ne su�t pas de connaître le contenu d'un emplacement de la mémoirepour lui donner une signi�cation.
Par exemple, si un octet contient (01001101)2, il peut correspondre à(77)10, mais il peut correspondre à une autre information (caractère M enASCII par exemple ou une partie d'un nombre réel)
On conclut qu'on ne peut pas attribuer une signi�cation à une informationbinaire tant qu'on ne connaît pas quel type d'information elle représente.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 45
Les types de base en langage C
La notion de type
La mémoire centrale d'un ordinateur est composée d'un ensemble depositions binaires:On stock des bits (0 ou 1) dans ces positions.
Les bits sont regroupés en octets (8 bits)
Chaque octet est repéré par ce qu'on nomme son adresse.
L'ordinateur ne sait représenter et traiter que des informationsexprimées sous forme binaire:Toute information devra être codée sous cette forme.
Il ne su�t pas de connaître le contenu d'un emplacement de la mémoirepour lui donner une signi�cation.
Par exemple, si un octet contient (01001101)2, il peut correspondre à(77)10, mais il peut correspondre à une autre information (caractère M enASCII par exemple ou une partie d'un nombre réel)
On conclut qu'on ne peut pas attribuer une signi�cation à une informationbinaire tant qu'on ne connaît pas quel type d'information elle représente.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 45
Les types de base en langage C
Les types en C
Les types en langage C se répartissent en trois familles :Les entiers
Les �ottants
Les caractères
Le type permet de dé�nir :Plage de valeurs acceptées
Famille de valeurs reçues par la variable dé�nie
Le type de la variable doit être mentionné dès la déclaration de lavariable.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 46
Les types de base en langage C
Les types en C
Les types en langage C se répartissent en trois familles :Les entiers
Les �ottants
Les caractères
Le type permet de dé�nir :Plage de valeurs acceptées
Famille de valeurs reçues par la variable dé�nie
Le type de la variable doit être mentionné dès la déclaration de lavariable.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 46
Les types de base en langage C
Les types en C
Les types en langage C se répartissent en trois familles :Les entiers
Les �ottants
Les caractères
Le type permet de dé�nir :Plage de valeurs acceptées
Famille de valeurs reçues par la variable dé�nie
Le type de la variable doit être mentionné dès la déclaration de lavariable.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 46
Les types de base en langage C
Les types en C
Les types en langage C se répartissent en trois familles :Les entiers
Les �ottants
Les caractères
Le type permet de dé�nir :Plage de valeurs acceptées
Famille de valeurs reçues par la variable dé�nie
Le type de la variable doit être mentionné dès la déclaration de lavariable.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 46
Les types de base en langage C
Les types en C
Les types en langage C se répartissent en trois familles :Les entiers
Les �ottants
Les caractères
Le type permet de dé�nir :Plage de valeurs acceptées
Famille de valeurs reçues par la variable dé�nie
Le type de la variable doit être mentionné dès la déclaration de lavariable.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 46
Les types de base en langage C
Les types en C
Les types en langage C se répartissent en trois familles :Les entiers
Les �ottants
Les caractères
Le type permet de dé�nir :Plage de valeurs acceptées
Famille de valeurs reçues par la variable dé�nie
Le type de la variable doit être mentionné dès la déclaration de lavariable.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 46
Les types de base en langage C
Les types en C
Les types en langage C se répartissent en trois familles :Les entiers
Les �ottants
Les caractères
Le type permet de dé�nir :Plage de valeurs acceptées
Famille de valeurs reçues par la variable dé�nie
Le type de la variable doit être mentionné dès la déclaration de lavariable.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 46
Les types de base en langage C
Les types en C
Les types en langage C se répartissent en trois familles :Les entiers
Les �ottants
Les caractères
Le type permet de dé�nir :Plage de valeurs acceptées
Famille de valeurs reçues par la variable dé�nie
Le type de la variable doit être mentionné dès la déclaration de lavariable.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 46
Les types de base en langage C Types entier
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage CTypes entierTypes �ottantType caractère
4 Les variables et les constantes en langage C
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 47
Les types de base en langage C Types entier
Types entier
Les entiers peuvent être signés (signed) ou non signés (unsigned)
Entiers signés:
les mots entre parenthèses () sont facultatifs
Le nombre d'octets alloué à une variable de type int dépend de la machine(selon le processeur)
Le codage utilisé par la machine pour les entiers signés est le complément à2
N. Alioua Chapitre 1: Langage C - introduction et notions de base 48
Les types de base en langage C Types entier
Types entier
Entiers non signés:
les mots entre parenthèses () sont facultatifs
Le type le plus utilisé pour les entiers en langage C est le (signed) int.
Exemples:int x; signed int y; // déclaration de deux entiers signés
short int z; signed short t; //déclaration de deux entiers (short) signés
unsigned long int u; unsigned long v ; //déclaration de deux entiers (long)non signés
N. Alioua Chapitre 1: Langage C - introduction et notions de base 49
Les types de base en langage C Types �ottant
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage CTypes entierTypes �ottantType caractère
4 Les variables et les constantes en langage C
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 50
Les types de base en langage C Types �ottant
Types �ottant
Les �ottants sont utilisés pour représenter des nombres à virgule�ottante, qui correspondent à des approximations de nombres réels àdes degrés de précision di�érents.
Les �ottants peuvent s'écrire de deux façons :Notation décimale: 5.2, -3.14, -.23, 2., .025
Notation exponentielle: en utilisant la lettre e ou E (puissance de 10):1.25e5, 3E-5, .23e-14
En C, on a deux types pour le �ottants: le �oat et le double
N. Alioua Chapitre 1: Langage C - introduction et notions de base 51
Les types de base en langage C Types �ottant
Types �ottant
Les �ottants sont utilisés pour représenter des nombres à virgule�ottante, qui correspondent à des approximations de nombres réels àdes degrés de précision di�érents.
Les �ottants peuvent s'écrire de deux façons :Notation décimale: 5.2, -3.14, -.23, 2., .025
Notation exponentielle: en utilisant la lettre e ou E (puissance de 10):1.25e5, 3E-5, .23e-14
En C, on a deux types pour le �ottants: le �oat et le double
N. Alioua Chapitre 1: Langage C - introduction et notions de base 51
Les types de base en langage C Types �ottant
Types �ottant
Les �ottants sont utilisés pour représenter des nombres à virgule�ottante, qui correspondent à des approximations de nombres réels àdes degrés de précision di�érents.
Les �ottants peuvent s'écrire de deux façons :Notation décimale: 5.2, -3.14, -.23, 2., .025
Notation exponentielle: en utilisant la lettre e ou E (puissance de 10):1.25e5, 3E-5, .23e-14
En C, on a deux types pour le �ottants: le �oat et le double
N. Alioua Chapitre 1: Langage C - introduction et notions de base 51
Les types de base en langage C Types �ottant
Types �ottant
Les nombres �ottants ne peuvent pas représenter tous les réels.Certaines approximations sont faites, puisque la majorité des nombresréels ont une expansion binaire in�nie.
Avec les �ottants, l'ordinateur ne connaît pas la virgule, il utilise lepoint.
Le codage utilisé est généralement la norme IEEE754 en simpleprécision (32 bits pour �oat) ou double précision (64 bits pour double)ou double précision étendue (79 bits pour long double)
Exemples:�oat x=1.5f;
double y=6.25;
double z=1.1e12;
Remarque: Les constantes sont créées, par défaut, par le compilateurdans le type double. Pour imposer à une constante �ottante d'être dutype �oat, on suit son écriture de la lettre F (ou f).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 52
Les types de base en langage C Types �ottant
Types �ottant
Les nombres �ottants ne peuvent pas représenter tous les réels.Certaines approximations sont faites, puisque la majorité des nombresréels ont une expansion binaire in�nie.
Avec les �ottants, l'ordinateur ne connaît pas la virgule, il utilise lepoint.
Le codage utilisé est généralement la norme IEEE754 en simpleprécision (32 bits pour �oat) ou double précision (64 bits pour double)ou double précision étendue (79 bits pour long double)
Exemples:�oat x=1.5f;
double y=6.25;
double z=1.1e12;
Remarque: Les constantes sont créées, par défaut, par le compilateurdans le type double. Pour imposer à une constante �ottante d'être dutype �oat, on suit son écriture de la lettre F (ou f).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 52
Les types de base en langage C Types �ottant
Types �ottant
Les nombres �ottants ne peuvent pas représenter tous les réels.Certaines approximations sont faites, puisque la majorité des nombresréels ont une expansion binaire in�nie.
Avec les �ottants, l'ordinateur ne connaît pas la virgule, il utilise lepoint.
Le codage utilisé est généralement la norme IEEE754 en simpleprécision (32 bits pour �oat) ou double précision (64 bits pour double)ou double précision étendue (79 bits pour long double)
Exemples:�oat x=1.5f;
double y=6.25;
double z=1.1e12;
Remarque: Les constantes sont créées, par défaut, par le compilateurdans le type double. Pour imposer à une constante �ottante d'être dutype �oat, on suit son écriture de la lettre F (ou f).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 52
Les types de base en langage C Types �ottant
Types �ottant
Les nombres �ottants ne peuvent pas représenter tous les réels.Certaines approximations sont faites, puisque la majorité des nombresréels ont une expansion binaire in�nie.
Avec les �ottants, l'ordinateur ne connaît pas la virgule, il utilise lepoint.
Le codage utilisé est généralement la norme IEEE754 en simpleprécision (32 bits pour �oat) ou double précision (64 bits pour double)ou double précision étendue (79 bits pour long double)
Exemples:�oat x=1.5f;
double y=6.25;
double z=1.1e12;
Remarque: Les constantes sont créées, par défaut, par le compilateurdans le type double. Pour imposer à une constante �ottante d'être dutype �oat, on suit son écriture de la lettre F (ou f).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 52
Les types de base en langage C Types �ottant
Types �ottant
Les nombres �ottants ne peuvent pas représenter tous les réels.Certaines approximations sont faites, puisque la majorité des nombresréels ont une expansion binaire in�nie.
Avec les �ottants, l'ordinateur ne connaît pas la virgule, il utilise lepoint.
Le codage utilisé est généralement la norme IEEE754 en simpleprécision (32 bits pour �oat) ou double précision (64 bits pour double)ou double précision étendue (79 bits pour long double)
Exemples:�oat x=1.5f;
double y=6.25;
double z=1.1e12;
Remarque: Les constantes sont créées, par défaut, par le compilateurdans le type double. Pour imposer à une constante �ottante d'être dutype �oat, on suit son écriture de la lettre F (ou f).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 52
Les types de base en langage C Types �ottant
Types �ottant
Les nombres �ottants ne peuvent pas représenter tous les réels.Certaines approximations sont faites, puisque la majorité des nombresréels ont une expansion binaire in�nie.
Avec les �ottants, l'ordinateur ne connaît pas la virgule, il utilise lepoint.
Le codage utilisé est généralement la norme IEEE754 en simpleprécision (32 bits pour �oat) ou double précision (64 bits pour double)ou double précision étendue (79 bits pour long double)
Exemples:�oat x=1.5f;
double y=6.25;
double z=1.1e12;
Remarque: Les constantes sont créées, par défaut, par le compilateurdans le type double. Pour imposer à une constante �ottante d'être dutype �oat, on suit son écriture de la lettre F (ou f).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 52
Les types de base en langage C Types �ottant
Types �ottant
Les nombres �ottants ne peuvent pas représenter tous les réels.Certaines approximations sont faites, puisque la majorité des nombresréels ont une expansion binaire in�nie.
Avec les �ottants, l'ordinateur ne connaît pas la virgule, il utilise lepoint.
Le codage utilisé est généralement la norme IEEE754 en simpleprécision (32 bits pour �oat) ou double précision (64 bits pour double)ou double précision étendue (79 bits pour long double)
Exemples:�oat x=1.5f;
double y=6.25;
double z=1.1e12;
Remarque: Les constantes sont créées, par défaut, par le compilateurdans le type double. Pour imposer à une constante �ottante d'être dutype �oat, on suit son écriture de la lettre F (ou f).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 52
Les types de base en langage C Types �ottant
Types �ottant
Les nombres �ottants ne peuvent pas représenter tous les réels.Certaines approximations sont faites, puisque la majorité des nombresréels ont une expansion binaire in�nie.
Avec les �ottants, l'ordinateur ne connaît pas la virgule, il utilise lepoint.
Le codage utilisé est généralement la norme IEEE754 en simpleprécision (32 bits pour �oat) ou double précision (64 bits pour double)ou double précision étendue (79 bits pour long double)
Exemples:�oat x=1.5f;
double y=6.25;
double z=1.1e12;
Remarque: Les constantes sont créées, par défaut, par le compilateurdans le type double. Pour imposer à une constante �ottante d'être dutype �oat, on suit son écriture de la lettre F (ou f).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 52
Les types de base en langage C Type caractère
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage CTypes entierTypes �ottantType caractère
4 Les variables et les constantes en langage C
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 53
Les types de base en langage C Type caractère
Type caractère
Pour déclarer une variable de type caractère, on utilise le mot clé char.
IMPORTANT: Une constante caractère est délimité par deuxapostrophes simples ' et ', tandis qu'une constante chaine decaractère est délimité par deux guillemets " et "
Exemple:char car1='a';
char car2='*';
N. Alioua Chapitre 1: Langage C - introduction et notions de base 54
Les types de base en langage C Type caractère
Type caractère
Pour déclarer une variable de type caractère, on utilise le mot clé char.
IMPORTANT: Une constante caractère est délimité par deuxapostrophes simples ' et ', tandis qu'une constante chaine decaractère est délimité par deux guillemets " et "
Exemple:char car1='a';
char car2='*';
N. Alioua Chapitre 1: Langage C - introduction et notions de base 54
Les types de base en langage C Type caractère
Type caractère
Pour déclarer une variable de type caractère, on utilise le mot clé char.
IMPORTANT: Une constante caractère est délimité par deuxapostrophes simples ' et ', tandis qu'une constante chaine decaractère est délimité par deux guillemets " et "
Exemple:char car1='a';
char car2='*';
N. Alioua Chapitre 1: Langage C - introduction et notions de base 54
Les types de base en langage C Type caractère
Type caractère
Pour déclarer une variable de type caractère, on utilise le mot clé char.
IMPORTANT: Une constante caractère est délimité par deuxapostrophes simples ' et ', tandis qu'une constante chaine decaractère est délimité par deux guillemets " et "
Exemple:char car1='a';
char car2='*';
N. Alioua Chapitre 1: Langage C - introduction et notions de base 54
Les types de base en langage C Type caractère
Type caractère
Pour déclarer une variable de type caractère, on utilise le mot clé char.
IMPORTANT: Une constante caractère est délimité par deuxapostrophes simples ' et ', tandis qu'une constante chaine decaractère est délimité par deux guillemets " et "
Exemple:char car1='a';
char car2='*';
N. Alioua Chapitre 1: Langage C - introduction et notions de base 54
Les types de base en langage C Type caractère
Caractères de contrôle
Il existe certains caractères conventionnelles en langage C qui nes'a�chent pas à l'écran mais qui permettent des actions spéciales. Onles appelle les caractères de contrôle.
Dans le code ASCII, ils ont des codes compris entre 0 et 31.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 55
Les types de base en langage C Type caractère
Caractères de contrôle
Il existe certains caractères conventionnelles en langage C qui nes'a�chent pas à l'écran mais qui permettent des actions spéciales. Onles appelle les caractères de contrôle.
Dans le code ASCII, ils ont des codes compris entre 0 et 31.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 55
Les types de base en langage C Type caractère
Caractères de contrôle
Explication:
Par exemple, la notation \n est une notation conventionnelle en langageC qui représente un caractère de �n de ligne
Lorsque ce caractère est envoyé à l'écran avec la fonction printf, ildéclenche le passage à la ligne suivante sur l'écran.
De manière générale, le langage C prévoit une notation de la forme \suivi d'un caractère pour un certain nombre de caractères dits decontrôle, c'est-à-dire ne possédant pas de graphisme particulier.
Remarque:Dans cette catégorie, on trouve également quelques caractères (\, ', " et ?)qui, bien que disposant d'un graphisme, jouent un rôle particulier dedélimiteur qui les empêche d'être notés de manière classique entre deuxapostrophes ' et '.
ces caractères ont besoin d'être "dé-spéci�é" pour être a�ché à l'écran: Onles fait précédé par un caractère \ pour les a�cher
N. Alioua Chapitre 1: Langage C - introduction et notions de base 56
Les types de base en langage C Type caractère
Caractères de contrôle
Explication:
Par exemple, la notation \n est une notation conventionnelle en langageC qui représente un caractère de �n de ligne
Lorsque ce caractère est envoyé à l'écran avec la fonction printf, ildéclenche le passage à la ligne suivante sur l'écran.
De manière générale, le langage C prévoit une notation de la forme \suivi d'un caractère pour un certain nombre de caractères dits decontrôle, c'est-à-dire ne possédant pas de graphisme particulier.
Remarque:Dans cette catégorie, on trouve également quelques caractères (\, ', " et ?)qui, bien que disposant d'un graphisme, jouent un rôle particulier dedélimiteur qui les empêche d'être notés de manière classique entre deuxapostrophes ' et '.
ces caractères ont besoin d'être "dé-spéci�é" pour être a�ché à l'écran: Onles fait précédé par un caractère \ pour les a�cher
N. Alioua Chapitre 1: Langage C - introduction et notions de base 56
Les types de base en langage C Type caractère
Caractères de contrôle
Explication:
Par exemple, la notation \n est une notation conventionnelle en langageC qui représente un caractère de �n de ligne
Lorsque ce caractère est envoyé à l'écran avec la fonction printf, ildéclenche le passage à la ligne suivante sur l'écran.
De manière générale, le langage C prévoit une notation de la forme \suivi d'un caractère pour un certain nombre de caractères dits decontrôle, c'est-à-dire ne possédant pas de graphisme particulier.
Remarque:Dans cette catégorie, on trouve également quelques caractères (\, ', " et ?)qui, bien que disposant d'un graphisme, jouent un rôle particulier dedélimiteur qui les empêche d'être notés de manière classique entre deuxapostrophes ' et '.
ces caractères ont besoin d'être "dé-spéci�é" pour être a�ché à l'écran: Onles fait précédé par un caractère \ pour les a�cher
N. Alioua Chapitre 1: Langage C - introduction et notions de base 56
Les types de base en langage C Type caractère
Caractères de contrôle
Explication:
Par exemple, la notation \n est une notation conventionnelle en langageC qui représente un caractère de �n de ligne
Lorsque ce caractère est envoyé à l'écran avec la fonction printf, ildéclenche le passage à la ligne suivante sur l'écran.
De manière générale, le langage C prévoit une notation de la forme \suivi d'un caractère pour un certain nombre de caractères dits decontrôle, c'est-à-dire ne possédant pas de graphisme particulier.
Remarque:Dans cette catégorie, on trouve également quelques caractères (\, ', " et ?)qui, bien que disposant d'un graphisme, jouent un rôle particulier dedélimiteur qui les empêche d'être notés de manière classique entre deuxapostrophes ' et '.
ces caractères ont besoin d'être "dé-spéci�é" pour être a�ché à l'écran: Onles fait précédé par un caractère \ pour les a�cher
N. Alioua Chapitre 1: Langage C - introduction et notions de base 56
Les types de base en langage C Type caractère
Caractères de contrôle
Explication:
Par exemple, la notation \n est une notation conventionnelle en langageC qui représente un caractère de �n de ligne
Lorsque ce caractère est envoyé à l'écran avec la fonction printf, ildéclenche le passage à la ligne suivante sur l'écran.
De manière générale, le langage C prévoit une notation de la forme \suivi d'un caractère pour un certain nombre de caractères dits decontrôle, c'est-à-dire ne possédant pas de graphisme particulier.
Remarque:Dans cette catégorie, on trouve également quelques caractères (\, ', " et ?)qui, bien que disposant d'un graphisme, jouent un rôle particulier dedélimiteur qui les empêche d'être notés de manière classique entre deuxapostrophes ' et '.
ces caractères ont besoin d'être "dé-spéci�é" pour être a�ché à l'écran: Onles fait précédé par un caractère \ pour les a�cher
N. Alioua Chapitre 1: Langage C - introduction et notions de base 56
Les types de base en langage C Type caractère
Caractères de contrôle
Explication:
Par exemple, la notation \n est une notation conventionnelle en langageC qui représente un caractère de �n de ligne
Lorsque ce caractère est envoyé à l'écran avec la fonction printf, ildéclenche le passage à la ligne suivante sur l'écran.
De manière générale, le langage C prévoit une notation de la forme \suivi d'un caractère pour un certain nombre de caractères dits decontrôle, c'est-à-dire ne possédant pas de graphisme particulier.
Remarque:Dans cette catégorie, on trouve également quelques caractères (\, ', " et ?)qui, bien que disposant d'un graphisme, jouent un rôle particulier dedélimiteur qui les empêche d'être notés de manière classique entre deuxapostrophes ' et '.
ces caractères ont besoin d'être "dé-spéci�é" pour être a�ché à l'écran: Onles fait précédé par un caractère \ pour les a�cher
N. Alioua Chapitre 1: Langage C - introduction et notions de base 56
Les types de base en langage C Type caractère
Types introduits en norme C99
Le type booléen nommé bool: une variable de ce type ne peut prendreque l'une des deux valeurs : true (vrai) et false (faux) ;
des types complexes nommés �oat complex, double complex et long double
complex: la constante I correspond alors à la constante mathématique i(racine de -1).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 57
Les types de base en langage C Type caractère
Types introduits en norme C99
Le type booléen nommé bool: une variable de ce type ne peut prendreque l'une des deux valeurs : true (vrai) et false (faux) ;
des types complexes nommés �oat complex, double complex et long double
complex: la constante I correspond alors à la constante mathématique i(racine de -1).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 57
Les variables et les constantes en langage C
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage CVariablesConstantes
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 58
Les variables et les constantes en langage C Variables
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage CVariablesConstantes
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 59
Les variables et les constantes en langage C Variables
Variables
Variable: petite information temporaire qu'on stocke dans la RAM.
Pourquoi est-elle appelée � variable � ? c'est une valeur qui peutchanger pendant le déroulement du programme.
Une variable possède :- une valeur : c'est le nombre qu'elle stocke;
- un nom (ou identi�cateur) : c'est ce qui permet de la reconnaître.
- un type: elle peut être entier, réel, caractère, chaîne de caractères,...
N. Alioua Chapitre 1: Langage C - introduction et notions de base 60
Les variables et les constantes en langage C Variables
Variables
Variable: petite information temporaire qu'on stocke dans la RAM.
Pourquoi est-elle appelée � variable � ? c'est une valeur qui peutchanger pendant le déroulement du programme.
Une variable possède :- une valeur : c'est le nombre qu'elle stocke;
- un nom (ou identi�cateur) : c'est ce qui permet de la reconnaître.
- un type: elle peut être entier, réel, caractère, chaîne de caractères,...
N. Alioua Chapitre 1: Langage C - introduction et notions de base 60
Les variables et les constantes en langage C Variables
Variables
Variable: petite information temporaire qu'on stocke dans la RAM.
Pourquoi est-elle appelée � variable � ? c'est une valeur qui peutchanger pendant le déroulement du programme.
Une variable possède :- une valeur : c'est le nombre qu'elle stocke;
- un nom (ou identi�cateur) : c'est ce qui permet de la reconnaître.
- un type: elle peut être entier, réel, caractère, chaîne de caractères,...
N. Alioua Chapitre 1: Langage C - introduction et notions de base 60
Les variables et les constantes en langage C Variables
Variables
Variable: petite information temporaire qu'on stocke dans la RAM.
Pourquoi est-elle appelée � variable � ? c'est une valeur qui peutchanger pendant le déroulement du programme.
Une variable possède :- une valeur : c'est le nombre qu'elle stocke;
- un nom (ou identi�cateur) : c'est ce qui permet de la reconnaître.
- un type: elle peut être entier, réel, caractère, chaîne de caractères,...
N. Alioua Chapitre 1: Langage C - introduction et notions de base 60
Les variables et les constantes en langage C Variables
Variables
Variable: petite information temporaire qu'on stocke dans la RAM.
Pourquoi est-elle appelée � variable � ? c'est une valeur qui peutchanger pendant le déroulement du programme.
Une variable possède :- une valeur : c'est le nombre qu'elle stocke;
- un nom (ou identi�cateur) : c'est ce qui permet de la reconnaître.
- un type: elle peut être entier, réel, caractère, chaîne de caractères,...
N. Alioua Chapitre 1: Langage C - introduction et notions de base 60
Les variables et les constantes en langage C Variables
Variables
Variable: petite information temporaire qu'on stocke dans la RAM.
Pourquoi est-elle appelée � variable � ? c'est une valeur qui peutchanger pendant le déroulement du programme.
Une variable possède :- une valeur : c'est le nombre qu'elle stocke;
- un nom (ou identi�cateur) : c'est ce qui permet de la reconnaître.
- un type: elle peut être entier, réel, caractère, chaîne de caractères,...
N. Alioua Chapitre 1: Langage C - introduction et notions de base 60
Les variables et les constantes en langage C Variables
Identi�cateur de variable
Règles pour l'identi�cateur d'une variable: (ou tout autre objet telqu'une fonction)- Sont autorisés: Lettres en minuscules, majuscules et chi�res, le caractèrespécial � _ � uniquement
- Sont interdits: tous les autres caractères y compris, les espaces et lesaccents.
- Le nom de variable doit obligatoirement commencé par une lettre.
- Il existe une di�érencie entre les majuscules et les minuscules.
- Longueur des identi�cateurs: selon la norme ANSI, on considèreuniquement les 31 premiers caractères. Donc, deux identi�cateurs quidi�èrent par leurs 31 premières lettres désigneront deux variables di�érentes
N. Alioua Chapitre 1: Langage C - introduction et notions de base 61
Les variables et les constantes en langage C Variables
Identi�cateur de variable
Règles pour l'identi�cateur d'une variable: (ou tout autre objet telqu'une fonction)- Sont autorisés: Lettres en minuscules, majuscules et chi�res, le caractèrespécial � _ � uniquement
- Sont interdits: tous les autres caractères y compris, les espaces et lesaccents.
- Le nom de variable doit obligatoirement commencé par une lettre.
- Il existe une di�érencie entre les majuscules et les minuscules.
- Longueur des identi�cateurs: selon la norme ANSI, on considèreuniquement les 31 premiers caractères. Donc, deux identi�cateurs quidi�èrent par leurs 31 premières lettres désigneront deux variables di�érentes
N. Alioua Chapitre 1: Langage C - introduction et notions de base 61
Les variables et les constantes en langage C Variables
Identi�cateur de variable
Règles pour l'identi�cateur d'une variable: (ou tout autre objet telqu'une fonction)- Sont autorisés: Lettres en minuscules, majuscules et chi�res, le caractèrespécial � _ � uniquement
- Sont interdits: tous les autres caractères y compris, les espaces et lesaccents.
- Le nom de variable doit obligatoirement commencé par une lettre.
- Il existe une di�érencie entre les majuscules et les minuscules.
- Longueur des identi�cateurs: selon la norme ANSI, on considèreuniquement les 31 premiers caractères. Donc, deux identi�cateurs quidi�èrent par leurs 31 premières lettres désigneront deux variables di�érentes
N. Alioua Chapitre 1: Langage C - introduction et notions de base 61
Les variables et les constantes en langage C Variables
Identi�cateur de variable
Règles pour l'identi�cateur d'une variable: (ou tout autre objet telqu'une fonction)- Sont autorisés: Lettres en minuscules, majuscules et chi�res, le caractèrespécial � _ � uniquement
- Sont interdits: tous les autres caractères y compris, les espaces et lesaccents.
- Le nom de variable doit obligatoirement commencé par une lettre.
- Il existe une di�érencie entre les majuscules et les minuscules.
- Longueur des identi�cateurs: selon la norme ANSI, on considèreuniquement les 31 premiers caractères. Donc, deux identi�cateurs quidi�èrent par leurs 31 premières lettres désigneront deux variables di�érentes
N. Alioua Chapitre 1: Langage C - introduction et notions de base 61
Les variables et les constantes en langage C Variables
Identi�cateur de variable
Règles pour l'identi�cateur d'une variable: (ou tout autre objet telqu'une fonction)- Sont autorisés: Lettres en minuscules, majuscules et chi�res, le caractèrespécial � _ � uniquement
- Sont interdits: tous les autres caractères y compris, les espaces et lesaccents.
- Le nom de variable doit obligatoirement commencé par une lettre.
- Il existe une di�érencie entre les majuscules et les minuscules.
- Longueur des identi�cateurs: selon la norme ANSI, on considèreuniquement les 31 premiers caractères. Donc, deux identi�cateurs quidi�èrent par leurs 31 premières lettres désigneront deux variables di�érentes
N. Alioua Chapitre 1: Langage C - introduction et notions de base 61
Les variables et les constantes en langage C Variables
Identi�cateur de variable
Règles pour l'identi�cateur d'une variable: (ou tout autre objet telqu'une fonction)- Sont autorisés: Lettres en minuscules, majuscules et chi�res, le caractèrespécial � _ � uniquement
- Sont interdits: tous les autres caractères y compris, les espaces et lesaccents.
- Le nom de variable doit obligatoirement commencé par une lettre.
- Il existe une di�érencie entre les majuscules et les minuscules.
- Longueur des identi�cateurs: selon la norme ANSI, on considèreuniquement les 31 premiers caractères. Donc, deux identi�cateurs quidi�èrent par leurs 31 premières lettres désigneront deux variables di�érentes
N. Alioua Chapitre 1: Langage C - introduction et notions de base 61
Les variables et les constantes en langage C Variables
Règles pour les variables
Exemples d'identi�cateursautorisés:
A1
SMIA_2019
SMIA2019
Exemples d'identi�cateurs nonautorisés:
1A
SMIA 2019
SMIA$2019
SMIA-2019
N. Alioua Chapitre 1: Langage C - introduction et notions de base 62
Les variables et les constantes en langage C Variables
Règles pour les variables
Exemples d'identi�cateursautorisés:
A1
SMIA_2019
SMIA2019
Exemples d'identi�cateurs nonautorisés:
1A
SMIA 2019
SMIA$2019
SMIA-2019
Pour la lisibilité du code, il est conseillé de choisir des noms de variablesqui représentent les données qu'elles stockent.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 62
Les variables et les constantes en langage C Variables
Règles pour les variables
Les mots ci-dessous ne peuvent pas être utilisés pour les identi�cateurs dulangage C. Il correspondent à des mots particuliers utilisés par le langageC.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 63
Les variables et les constantes en langage C Variables
Déclaration de variables
Pour déclarer une variable, il su�t de :Indiquer le type de la variable à créer ;
Insérer un espace ;
Indiquer le nom (identi�cateur) attribué à la variable, en respectant lesrègles concernant les identi�cateurs ;
En�n, de ne pas oublier le point-virgule, indispensable pour touteinstruction en C.
Syntaxe: typeVariable nomVariable;
Exemple des cas possibles:Déclaration avec initialisation : int x=1;
Déclaration seule: double y;
Déclarations avec initialisations pour plusieurs variables de même typesur la même ligne séparées par une virgule : int a=2, b=6;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 64
Les variables et les constantes en langage C Variables
Déclaration de variables
Pour déclarer une variable, il su�t de :Indiquer le type de la variable à créer ;
Insérer un espace ;
Indiquer le nom (identi�cateur) attribué à la variable, en respectant lesrègles concernant les identi�cateurs ;
En�n, de ne pas oublier le point-virgule, indispensable pour touteinstruction en C.
Syntaxe: typeVariable nomVariable;
Exemple des cas possibles:Déclaration avec initialisation : int x=1;
Déclaration seule: double y;
Déclarations avec initialisations pour plusieurs variables de même typesur la même ligne séparées par une virgule : int a=2, b=6;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 64
Les variables et les constantes en langage C Variables
Déclaration de variables
Pour déclarer une variable, il su�t de :Indiquer le type de la variable à créer ;
Insérer un espace ;
Indiquer le nom (identi�cateur) attribué à la variable, en respectant lesrègles concernant les identi�cateurs ;
En�n, de ne pas oublier le point-virgule, indispensable pour touteinstruction en C.
Syntaxe: typeVariable nomVariable;
Exemple des cas possibles:Déclaration avec initialisation : int x=1;
Déclaration seule: double y;
Déclarations avec initialisations pour plusieurs variables de même typesur la même ligne séparées par une virgule : int a=2, b=6;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 64
Les variables et les constantes en langage C Variables
Déclaration de variables
Pour déclarer une variable, il su�t de :Indiquer le type de la variable à créer ;
Insérer un espace ;
Indiquer le nom (identi�cateur) attribué à la variable, en respectant lesrègles concernant les identi�cateurs ;
En�n, de ne pas oublier le point-virgule, indispensable pour touteinstruction en C.
Syntaxe: typeVariable nomVariable;
Exemple des cas possibles:Déclaration avec initialisation : int x=1;
Déclaration seule: double y;
Déclarations avec initialisations pour plusieurs variables de même typesur la même ligne séparées par une virgule : int a=2, b=6;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 64
Les variables et les constantes en langage C Variables
Déclaration de variables
Pour déclarer une variable, il su�t de :Indiquer le type de la variable à créer ;
Insérer un espace ;
Indiquer le nom (identi�cateur) attribué à la variable, en respectant lesrègles concernant les identi�cateurs ;
En�n, de ne pas oublier le point-virgule, indispensable pour touteinstruction en C.
Syntaxe: typeVariable nomVariable;
Exemple des cas possibles:Déclaration avec initialisation : int x=1;
Déclaration seule: double y;
Déclarations avec initialisations pour plusieurs variables de même typesur la même ligne séparées par une virgule : int a=2, b=6;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 64
Les variables et les constantes en langage C Variables
Déclaration de variables
Pour déclarer une variable, il su�t de :Indiquer le type de la variable à créer ;
Insérer un espace ;
Indiquer le nom (identi�cateur) attribué à la variable, en respectant lesrègles concernant les identi�cateurs ;
En�n, de ne pas oublier le point-virgule, indispensable pour touteinstruction en C.
Syntaxe: typeVariable nomVariable;
Exemple des cas possibles:Déclaration avec initialisation : int x=1;
Déclaration seule: double y;
Déclarations avec initialisations pour plusieurs variables de même typesur la même ligne séparées par une virgule : int a=2, b=6;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 64
Les variables et les constantes en langage C Variables
Déclaration de variables
Pour déclarer une variable, il su�t de :Indiquer le type de la variable à créer ;
Insérer un espace ;
Indiquer le nom (identi�cateur) attribué à la variable, en respectant lesrègles concernant les identi�cateurs ;
En�n, de ne pas oublier le point-virgule, indispensable pour touteinstruction en C.
Syntaxe: typeVariable nomVariable;
Exemple des cas possibles:Déclaration avec initialisation : int x=1;
Déclaration seule: double y;
Déclarations avec initialisations pour plusieurs variables de même typesur la même ligne séparées par une virgule : int a=2, b=6;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 64
Les variables et les constantes en langage C Variables
Déclaration de variables
Pour déclarer une variable, il su�t de :Indiquer le type de la variable à créer ;
Insérer un espace ;
Indiquer le nom (identi�cateur) attribué à la variable, en respectant lesrègles concernant les identi�cateurs ;
En�n, de ne pas oublier le point-virgule, indispensable pour touteinstruction en C.
Syntaxe: typeVariable nomVariable;
Exemple des cas possibles:Déclaration avec initialisation : int x=1;
Déclaration seule: double y;
Déclarations avec initialisations pour plusieurs variables de même typesur la même ligne séparées par une virgule : int a=2, b=6;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 64
Les variables et les constantes en langage C Variables
Déclaration de variables
Pour déclarer une variable, il su�t de :Indiquer le type de la variable à créer ;
Insérer un espace ;
Indiquer le nom (identi�cateur) attribué à la variable, en respectant lesrègles concernant les identi�cateurs ;
En�n, de ne pas oublier le point-virgule, indispensable pour touteinstruction en C.
Syntaxe: typeVariable nomVariable;
Exemple des cas possibles:Déclaration avec initialisation : int x=1;
Déclaration seule: double y;
Déclarations avec initialisations pour plusieurs variables de même typesur la même ligne séparées par une virgule : int a=2, b=6;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 64
Les variables et les constantes en langage C Variables
Déclaration de variables
Pour déclarer une variable, il su�t de :Indiquer le type de la variable à créer ;
Insérer un espace ;
Indiquer le nom (identi�cateur) attribué à la variable, en respectant lesrègles concernant les identi�cateurs ;
En�n, de ne pas oublier le point-virgule, indispensable pour touteinstruction en C.
Syntaxe: typeVariable nomVariable;
Exemple des cas possibles:Déclaration avec initialisation : int x=1;
Déclaration seule: double y;
Déclarations avec initialisations pour plusieurs variables de même typesur la même ligne séparées par une virgule : int a=2, b=6;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 64
Les variables et les constantes en langage C Variables
A�ectation d'une valeur une variable
Pour a�ecter une valeur à une variable, il su�t de :Indiquer le nom de la variable;
Un signe égal;
Puis la valeur à placer;
Terminer par un point virgule
Remarque: Il n'existe pas de valeur par défaut pour les variables enlangage C. Lors d'une déclaration sans initialisation, la variable prend lavaleur qui se trouvait là avant dans la mémoire, et cette valeur peutêtre n'importe quoi !
Il est donc toujours recommandé d'initialiser la variable dès qu'on ladéclare.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 65
Les variables et les constantes en langage C Variables
A�ectation d'une valeur une variable
Pour a�ecter une valeur à une variable, il su�t de :Indiquer le nom de la variable;
Un signe égal;
Puis la valeur à placer;
Terminer par un point virgule
Remarque: Il n'existe pas de valeur par défaut pour les variables enlangage C. Lors d'une déclaration sans initialisation, la variable prend lavaleur qui se trouvait là avant dans la mémoire, et cette valeur peutêtre n'importe quoi !
Il est donc toujours recommandé d'initialiser la variable dès qu'on ladéclare.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 65
Les variables et les constantes en langage C Variables
A�ectation d'une valeur une variable
Pour a�ecter une valeur à une variable, il su�t de :Indiquer le nom de la variable;
Un signe égal;
Puis la valeur à placer;
Terminer par un point virgule
Remarque: Il n'existe pas de valeur par défaut pour les variables enlangage C. Lors d'une déclaration sans initialisation, la variable prend lavaleur qui se trouvait là avant dans la mémoire, et cette valeur peutêtre n'importe quoi !
Il est donc toujours recommandé d'initialiser la variable dès qu'on ladéclare.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 65
Les variables et les constantes en langage C Variables
A�ectation d'une valeur une variable
Pour a�ecter une valeur à une variable, il su�t de :Indiquer le nom de la variable;
Un signe égal;
Puis la valeur à placer;
Terminer par un point virgule
Remarque: Il n'existe pas de valeur par défaut pour les variables enlangage C. Lors d'une déclaration sans initialisation, la variable prend lavaleur qui se trouvait là avant dans la mémoire, et cette valeur peutêtre n'importe quoi !
Il est donc toujours recommandé d'initialiser la variable dès qu'on ladéclare.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 65
Les variables et les constantes en langage C Variables
A�ectation d'une valeur une variable
Pour a�ecter une valeur à une variable, il su�t de :Indiquer le nom de la variable;
Un signe égal;
Puis la valeur à placer;
Terminer par un point virgule
Remarque: Il n'existe pas de valeur par défaut pour les variables enlangage C. Lors d'une déclaration sans initialisation, la variable prend lavaleur qui se trouvait là avant dans la mémoire, et cette valeur peutêtre n'importe quoi !
Il est donc toujours recommandé d'initialiser la variable dès qu'on ladéclare.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 65
Les variables et les constantes en langage C Variables
A�ectation d'une valeur une variable
Pour a�ecter une valeur à une variable, il su�t de :Indiquer le nom de la variable;
Un signe égal;
Puis la valeur à placer;
Terminer par un point virgule
Remarque: Il n'existe pas de valeur par défaut pour les variables enlangage C. Lors d'une déclaration sans initialisation, la variable prend lavaleur qui se trouvait là avant dans la mémoire, et cette valeur peutêtre n'importe quoi !
Il est donc toujours recommandé d'initialiser la variable dès qu'on ladéclare.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 65
Les variables et les constantes en langage C Variables
A�ectation d'une valeur une variable
Pour a�ecter une valeur à une variable, il su�t de :Indiquer le nom de la variable;
Un signe égal;
Puis la valeur à placer;
Terminer par un point virgule
Remarque: Il n'existe pas de valeur par défaut pour les variables enlangage C. Lors d'une déclaration sans initialisation, la variable prend lavaleur qui se trouvait là avant dans la mémoire, et cette valeur peutêtre n'importe quoi !
Il est donc toujours recommandé d'initialiser la variable dès qu'on ladéclare.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 65
Les variables et les constantes en langage C Variables
Remarques sur les variables en langage C
Comme dans la plupart des langages actuels, les déclarations des typesdes variables sont obligatoires et doivent être regroupées, de préférence,au début du programme principal (qui correspond à la fonction main)
A partir de la norme C99, une déclaration de variable peut �gurer àn'importe quel emplacement du programme, à condition qu'elleapparaisse avant l'utilisation de cette variable.
Les variables ne possèdent pas de valeur par défaut. Il est doncnécessaire de les initialiser, c-à-d leur a�ecter une valeur, avant de lesutiliser.
Toute variable déclarée à l'intérieur d'une fonction quelconque, ycompris le programme principal (qui correspond à la fonction main), estune variable locale qui ne peut être utilisée qu'à l'intérieur de cettefonction.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 66
Les variables et les constantes en langage C Variables
Remarques sur les variables en langage C
Comme dans la plupart des langages actuels, les déclarations des typesdes variables sont obligatoires et doivent être regroupées, de préférence,au début du programme principal (qui correspond à la fonction main)
A partir de la norme C99, une déclaration de variable peut �gurer àn'importe quel emplacement du programme, à condition qu'elleapparaisse avant l'utilisation de cette variable.
Les variables ne possèdent pas de valeur par défaut. Il est doncnécessaire de les initialiser, c-à-d leur a�ecter une valeur, avant de lesutiliser.
Toute variable déclarée à l'intérieur d'une fonction quelconque, ycompris le programme principal (qui correspond à la fonction main), estune variable locale qui ne peut être utilisée qu'à l'intérieur de cettefonction.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 66
Les variables et les constantes en langage C Variables
Remarques sur les variables en langage C
Comme dans la plupart des langages actuels, les déclarations des typesdes variables sont obligatoires et doivent être regroupées, de préférence,au début du programme principal (qui correspond à la fonction main)
A partir de la norme C99, une déclaration de variable peut �gurer àn'importe quel emplacement du programme, à condition qu'elleapparaisse avant l'utilisation de cette variable.
Les variables ne possèdent pas de valeur par défaut. Il est doncnécessaire de les initialiser, c-à-d leur a�ecter une valeur, avant de lesutiliser.
Toute variable déclarée à l'intérieur d'une fonction quelconque, ycompris le programme principal (qui correspond à la fonction main), estune variable locale qui ne peut être utilisée qu'à l'intérieur de cettefonction.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 66
Les variables et les constantes en langage C Variables
Remarques sur les variables en langage C
Comme dans la plupart des langages actuels, les déclarations des typesdes variables sont obligatoires et doivent être regroupées, de préférence,au début du programme principal (qui correspond à la fonction main)
A partir de la norme C99, une déclaration de variable peut �gurer àn'importe quel emplacement du programme, à condition qu'elleapparaisse avant l'utilisation de cette variable.
Les variables ne possèdent pas de valeur par défaut. Il est doncnécessaire de les initialiser, c-à-d leur a�ecter une valeur, avant de lesutiliser.
Toute variable déclarée à l'intérieur d'une fonction quelconque, ycompris le programme principal (qui correspond à la fonction main), estune variable locale qui ne peut être utilisée qu'à l'intérieur de cettefonction.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 66
Les variables et les constantes en langage C Constantes
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage CVariablesConstantes
5 Les opérateurs en langage C
N. Alioua Chapitre 1: Langage C - introduction et notions de base 67
Les variables et les constantes en langage C Constantes
Pourquoi utiliser une constante?
Dé�nir une constante revient à associer un nom symbolique bien choisià une valeur numérique qui peut être utilisée en plusieurs endroits ducode source.
Il est toujours recommandé d'écrire les noms des constantes enmajuscules pour les di�érencier des variables
Les constantes sont destinées à :augmenter la lisibilité : un nom bien choisi est plus expressif qu'une valeurnumérique
rendre le programme plus évolutif. On pourra facilement changer la valeurde la constante lors d'une prochaine compilation, sans avoir à parcourir toutle code source.
En Langage C, il existe deux façons de dé�nir des constantes :les constantes symboliques qui sont remplacées par la valeur numériqueassociée par le préprocesseur, juste avant la compilation
les variables constantes qui sont des variables protégées en écriture.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 68
Les variables et les constantes en langage C Constantes
Pourquoi utiliser une constante?
Dé�nir une constante revient à associer un nom symbolique bien choisià une valeur numérique qui peut être utilisée en plusieurs endroits ducode source.
Il est toujours recommandé d'écrire les noms des constantes enmajuscules pour les di�érencier des variables
Les constantes sont destinées à :augmenter la lisibilité : un nom bien choisi est plus expressif qu'une valeurnumérique
rendre le programme plus évolutif. On pourra facilement changer la valeurde la constante lors d'une prochaine compilation, sans avoir à parcourir toutle code source.
En Langage C, il existe deux façons de dé�nir des constantes :les constantes symboliques qui sont remplacées par la valeur numériqueassociée par le préprocesseur, juste avant la compilation
les variables constantes qui sont des variables protégées en écriture.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 68
Les variables et les constantes en langage C Constantes
Pourquoi utiliser une constante?
Dé�nir une constante revient à associer un nom symbolique bien choisià une valeur numérique qui peut être utilisée en plusieurs endroits ducode source.
Il est toujours recommandé d'écrire les noms des constantes enmajuscules pour les di�érencier des variables
Les constantes sont destinées à :augmenter la lisibilité : un nom bien choisi est plus expressif qu'une valeurnumérique
rendre le programme plus évolutif. On pourra facilement changer la valeurde la constante lors d'une prochaine compilation, sans avoir à parcourir toutle code source.
En Langage C, il existe deux façons de dé�nir des constantes :les constantes symboliques qui sont remplacées par la valeur numériqueassociée par le préprocesseur, juste avant la compilation
les variables constantes qui sont des variables protégées en écriture.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 68
Les variables et les constantes en langage C Constantes
Pourquoi utiliser une constante?
Dé�nir une constante revient à associer un nom symbolique bien choisià une valeur numérique qui peut être utilisée en plusieurs endroits ducode source.
Il est toujours recommandé d'écrire les noms des constantes enmajuscules pour les di�érencier des variables
Les constantes sont destinées à :augmenter la lisibilité : un nom bien choisi est plus expressif qu'une valeurnumérique
rendre le programme plus évolutif. On pourra facilement changer la valeurde la constante lors d'une prochaine compilation, sans avoir à parcourir toutle code source.
En Langage C, il existe deux façons de dé�nir des constantes :les constantes symboliques qui sont remplacées par la valeur numériqueassociée par le préprocesseur, juste avant la compilation
les variables constantes qui sont des variables protégées en écriture.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 68
Les variables et les constantes en langage C Constantes
Pourquoi utiliser une constante?
Dé�nir une constante revient à associer un nom symbolique bien choisià une valeur numérique qui peut être utilisée en plusieurs endroits ducode source.
Il est toujours recommandé d'écrire les noms des constantes enmajuscules pour les di�érencier des variables
Les constantes sont destinées à :augmenter la lisibilité : un nom bien choisi est plus expressif qu'une valeurnumérique
rendre le programme plus évolutif. On pourra facilement changer la valeurde la constante lors d'une prochaine compilation, sans avoir à parcourir toutle code source.
En Langage C, il existe deux façons de dé�nir des constantes :les constantes symboliques qui sont remplacées par la valeur numériqueassociée par le préprocesseur, juste avant la compilation
les variables constantes qui sont des variables protégées en écriture.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 68
Les variables et les constantes en langage C Constantes
Pourquoi utiliser une constante?
Dé�nir une constante revient à associer un nom symbolique bien choisià une valeur numérique qui peut être utilisée en plusieurs endroits ducode source.
Il est toujours recommandé d'écrire les noms des constantes enmajuscules pour les di�érencier des variables
Les constantes sont destinées à :augmenter la lisibilité : un nom bien choisi est plus expressif qu'une valeurnumérique
rendre le programme plus évolutif. On pourra facilement changer la valeurde la constante lors d'une prochaine compilation, sans avoir à parcourir toutle code source.
En Langage C, il existe deux façons de dé�nir des constantes :les constantes symboliques qui sont remplacées par la valeur numériqueassociée par le préprocesseur, juste avant la compilation
les variables constantes qui sont des variables protégées en écriture.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 68
Les variables et les constantes en langage C Constantes
Pourquoi utiliser une constante?
Dé�nir une constante revient à associer un nom symbolique bien choisià une valeur numérique qui peut être utilisée en plusieurs endroits ducode source.
Il est toujours recommandé d'écrire les noms des constantes enmajuscules pour les di�érencier des variables
Les constantes sont destinées à :augmenter la lisibilité : un nom bien choisi est plus expressif qu'une valeurnumérique
rendre le programme plus évolutif. On pourra facilement changer la valeurde la constante lors d'une prochaine compilation, sans avoir à parcourir toutle code source.
En Langage C, il existe deux façons de dé�nir des constantes :les constantes symboliques qui sont remplacées par la valeur numériqueassociée par le préprocesseur, juste avant la compilation
les variables constantes qui sont des variables protégées en écriture.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 68
Les variables et les constantes en langage C Constantes
Pourquoi utiliser une constante?
Dé�nir une constante revient à associer un nom symbolique bien choisià une valeur numérique qui peut être utilisée en plusieurs endroits ducode source.
Il est toujours recommandé d'écrire les noms des constantes enmajuscules pour les di�érencier des variables
Les constantes sont destinées à :augmenter la lisibilité : un nom bien choisi est plus expressif qu'une valeurnumérique
rendre le programme plus évolutif. On pourra facilement changer la valeurde la constante lors d'une prochaine compilation, sans avoir à parcourir toutle code source.
En Langage C, il existe deux façons de dé�nir des constantes :les constantes symboliques qui sont remplacées par la valeur numériqueassociée par le préprocesseur, juste avant la compilation
les variables constantes qui sont des variables protégées en écriture.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 68
Les variables et les constantes en langage C Constantes
Les constantes symboliques
Une constante symbolique est dé�nie par la directive #de�ne. Elle peutêtre placée : en début du �chier source ou dans un �chier en-tête .h
Il est recommandé d'écrire les constantes symboliques enMAJUSCULES : NB_ELEMENTS, PI,...
#de�ne substitue littéralement un texte à un autre avant lacompilation (le compilateur ne connaîtra donc pas le symbole).
Exemple: #de�ne PI 3.14159 demande au préprocesseur de remplacer lesymbole PI par le texte 3.14159, chaque fois que ce symbole apparaîtdans le �chier source.
Les constantes symboliques n'ont pas de type explicite et n'ont pasde place allouée en mémoire.
Notez l'absence de ; car la dé�nition d'une constante symbolique n'estpas une instruction
N. Alioua Chapitre 1: Langage C - introduction et notions de base 69
Les variables et les constantes en langage C Constantes
Les constantes symboliques
Une constante symbolique est dé�nie par la directive #de�ne. Elle peutêtre placée : en début du �chier source ou dans un �chier en-tête .h
Il est recommandé d'écrire les constantes symboliques enMAJUSCULES : NB_ELEMENTS, PI,...
#de�ne substitue littéralement un texte à un autre avant lacompilation (le compilateur ne connaîtra donc pas le symbole).
Exemple: #de�ne PI 3.14159 demande au préprocesseur de remplacer lesymbole PI par le texte 3.14159, chaque fois que ce symbole apparaîtdans le �chier source.
Les constantes symboliques n'ont pas de type explicite et n'ont pasde place allouée en mémoire.
Notez l'absence de ; car la dé�nition d'une constante symbolique n'estpas une instruction
N. Alioua Chapitre 1: Langage C - introduction et notions de base 69
Les variables et les constantes en langage C Constantes
Les constantes symboliques
Une constante symbolique est dé�nie par la directive #de�ne. Elle peutêtre placée : en début du �chier source ou dans un �chier en-tête .h
Il est recommandé d'écrire les constantes symboliques enMAJUSCULES : NB_ELEMENTS, PI,...
#de�ne substitue littéralement un texte à un autre avant lacompilation (le compilateur ne connaîtra donc pas le symbole).
Exemple: #de�ne PI 3.14159 demande au préprocesseur de remplacer lesymbole PI par le texte 3.14159, chaque fois que ce symbole apparaîtdans le �chier source.
Les constantes symboliques n'ont pas de type explicite et n'ont pasde place allouée en mémoire.
Notez l'absence de ; car la dé�nition d'une constante symbolique n'estpas une instruction
N. Alioua Chapitre 1: Langage C - introduction et notions de base 69
Les variables et les constantes en langage C Constantes
Les constantes symboliques
Une constante symbolique est dé�nie par la directive #de�ne. Elle peutêtre placée : en début du �chier source ou dans un �chier en-tête .h
Il est recommandé d'écrire les constantes symboliques enMAJUSCULES : NB_ELEMENTS, PI,...
#de�ne substitue littéralement un texte à un autre avant lacompilation (le compilateur ne connaîtra donc pas le symbole).
Exemple: #de�ne PI 3.14159 demande au préprocesseur de remplacer lesymbole PI par le texte 3.14159, chaque fois que ce symbole apparaîtdans le �chier source.
Les constantes symboliques n'ont pas de type explicite et n'ont pasde place allouée en mémoire.
Notez l'absence de ; car la dé�nition d'une constante symbolique n'estpas une instruction
N. Alioua Chapitre 1: Langage C - introduction et notions de base 69
Les variables et les constantes en langage C Constantes
Les constantes symboliques
Une constante symbolique est dé�nie par la directive #de�ne. Elle peutêtre placée : en début du �chier source ou dans un �chier en-tête .h
Il est recommandé d'écrire les constantes symboliques enMAJUSCULES : NB_ELEMENTS, PI,...
#de�ne substitue littéralement un texte à un autre avant lacompilation (le compilateur ne connaîtra donc pas le symbole).
Exemple: #de�ne PI 3.14159 demande au préprocesseur de remplacer lesymbole PI par le texte 3.14159, chaque fois que ce symbole apparaîtdans le �chier source.
Les constantes symboliques n'ont pas de type explicite et n'ont pasde place allouée en mémoire.
Notez l'absence de ; car la dé�nition d'une constante symbolique n'estpas une instruction
N. Alioua Chapitre 1: Langage C - introduction et notions de base 69
Les variables et les constantes en langage C Constantes
Les constantes symboliques
Une constante symbolique est dé�nie par la directive #de�ne. Elle peutêtre placée : en début du �chier source ou dans un �chier en-tête .h
Il est recommandé d'écrire les constantes symboliques enMAJUSCULES : NB_ELEMENTS, PI,...
#de�ne substitue littéralement un texte à un autre avant lacompilation (le compilateur ne connaîtra donc pas le symbole).
Exemple: #de�ne PI 3.14159 demande au préprocesseur de remplacer lesymbole PI par le texte 3.14159, chaque fois que ce symbole apparaîtdans le �chier source.
Les constantes symboliques n'ont pas de type explicite et n'ont pasde place allouée en mémoire.
Notez l'absence de ; car la dé�nition d'une constante symbolique n'estpas une instruction
N. Alioua Chapitre 1: Langage C - introduction et notions de base 69
Les variables et les constantes en langage C Constantes
Les variables constantes
Pour déclarer une constante (appelée aussi variable constante), il su�td'utiliser le mot const juste avant le type au moment de la déclarationde la variable.
Le mot réservé const permet de dé�nir une constante qui est en réalitéune variable protégée par le compilateur.
Il faut obligatoirement donner une valeur au moment de la déclarationde la constante. Aucun changement de la valeur de la constante n'estpermis après son initialisation.
La constante PI peut ainsi être dé�nie par : const �oat PI = 3.14159f;
Le compilateur véri�e que la variable n'est pas modi�ée dans le code,ce qui est particulièrement intéressant en cas d'appel de fonction avecpassage de paramètre par adresse.
Contrairement au cas des constantes symboliques, une place enmémoire est allouée par le compilateur pour la constante dé�nie parconst.N. Alioua Chapitre 1: Langage C - introduction et notions de base 70
Les variables et les constantes en langage C Constantes
Les variables constantes
Pour déclarer une constante (appelée aussi variable constante), il su�td'utiliser le mot const juste avant le type au moment de la déclarationde la variable.
Le mot réservé const permet de dé�nir une constante qui est en réalitéune variable protégée par le compilateur.
Il faut obligatoirement donner une valeur au moment de la déclarationde la constante. Aucun changement de la valeur de la constante n'estpermis après son initialisation.
La constante PI peut ainsi être dé�nie par : const �oat PI = 3.14159f;
Le compilateur véri�e que la variable n'est pas modi�ée dans le code,ce qui est particulièrement intéressant en cas d'appel de fonction avecpassage de paramètre par adresse.
Contrairement au cas des constantes symboliques, une place enmémoire est allouée par le compilateur pour la constante dé�nie parconst.N. Alioua Chapitre 1: Langage C - introduction et notions de base 70
Les variables et les constantes en langage C Constantes
Les variables constantes
Pour déclarer une constante (appelée aussi variable constante), il su�td'utiliser le mot const juste avant le type au moment de la déclarationde la variable.
Le mot réservé const permet de dé�nir une constante qui est en réalitéune variable protégée par le compilateur.
Il faut obligatoirement donner une valeur au moment de la déclarationde la constante. Aucun changement de la valeur de la constante n'estpermis après son initialisation.
La constante PI peut ainsi être dé�nie par : const �oat PI = 3.14159f;
Le compilateur véri�e que la variable n'est pas modi�ée dans le code,ce qui est particulièrement intéressant en cas d'appel de fonction avecpassage de paramètre par adresse.
Contrairement au cas des constantes symboliques, une place enmémoire est allouée par le compilateur pour la constante dé�nie parconst.N. Alioua Chapitre 1: Langage C - introduction et notions de base 70
Les variables et les constantes en langage C Constantes
Les variables constantes
Pour déclarer une constante (appelée aussi variable constante), il su�td'utiliser le mot const juste avant le type au moment de la déclarationde la variable.
Le mot réservé const permet de dé�nir une constante qui est en réalitéune variable protégée par le compilateur.
Il faut obligatoirement donner une valeur au moment de la déclarationde la constante. Aucun changement de la valeur de la constante n'estpermis après son initialisation.
La constante PI peut ainsi être dé�nie par : const �oat PI = 3.14159f;
Le compilateur véri�e que la variable n'est pas modi�ée dans le code,ce qui est particulièrement intéressant en cas d'appel de fonction avecpassage de paramètre par adresse.
Contrairement au cas des constantes symboliques, une place enmémoire est allouée par le compilateur pour la constante dé�nie parconst.N. Alioua Chapitre 1: Langage C - introduction et notions de base 70
Les variables et les constantes en langage C Constantes
Les variables constantes
Pour déclarer une constante (appelée aussi variable constante), il su�td'utiliser le mot const juste avant le type au moment de la déclarationde la variable.
Le mot réservé const permet de dé�nir une constante qui est en réalitéune variable protégée par le compilateur.
Il faut obligatoirement donner une valeur au moment de la déclarationde la constante. Aucun changement de la valeur de la constante n'estpermis après son initialisation.
La constante PI peut ainsi être dé�nie par : const �oat PI = 3.14159f;
Le compilateur véri�e que la variable n'est pas modi�ée dans le code,ce qui est particulièrement intéressant en cas d'appel de fonction avecpassage de paramètre par adresse.
Contrairement au cas des constantes symboliques, une place enmémoire est allouée par le compilateur pour la constante dé�nie parconst.N. Alioua Chapitre 1: Langage C - introduction et notions de base 70
Les variables et les constantes en langage C Constantes
Les variables constantes
Pour déclarer une constante (appelée aussi variable constante), il su�td'utiliser le mot const juste avant le type au moment de la déclarationde la variable.
Le mot réservé const permet de dé�nir une constante qui est en réalitéune variable protégée par le compilateur.
Il faut obligatoirement donner une valeur au moment de la déclarationde la constante. Aucun changement de la valeur de la constante n'estpermis après son initialisation.
La constante PI peut ainsi être dé�nie par : const �oat PI = 3.14159f;
Le compilateur véri�e que la variable n'est pas modi�ée dans le code,ce qui est particulièrement intéressant en cas d'appel de fonction avecpassage de paramètre par adresse.
Contrairement au cas des constantes symboliques, une place enmémoire est allouée par le compilateur pour la constante dé�nie parconst.N. Alioua Chapitre 1: Langage C - introduction et notions de base 70
Les opérateurs en langage C
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage COpérateurs arithmétiquesOpérateurs relationnelsOpérateur d'a�ectationOpérateurs logiquesAutres Opérateurs
N. Alioua Chapitre 1: Langage C - introduction et notions de base 71
Les opérateurs en langage C Opérateurs arithmétiques
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage COpérateurs arithmétiquesOpérateurs relationnelsOpérateur d'a�ectationOpérateurs logiquesAutres Opérateurs
N. Alioua Chapitre 1: Langage C - introduction et notions de base 72
Les opérateurs en langage C Opérateurs arithmétiques
Les opérateurs arithmétiques en langage C
Les opérateurs arithmétiques sont des opérateurs binaires dé�nis, engénéral, pour deux opérandes de même type et fournissent un résultatde même type.
Remarque importante:Pour la division (/), le quotient de deux entiers donne un entier (5/2=2) etcelui de deux �ottants donne un �ottant (5.0/2.0=2.5)
Le modulo (%) ne porte que sur des entiers, il fournit le reste de la divisionde son premier opérande par son second (5%2=1).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 73
Les opérateurs en langage C Opérateurs arithmétiques
Les opérateurs arithmétiques en langage C
Les opérateurs arithmétiques sont des opérateurs binaires dé�nis, engénéral, pour deux opérandes de même type et fournissent un résultatde même type.
Remarque importante:Pour la division (/), le quotient de deux entiers donne un entier (5/2=2) etcelui de deux �ottants donne un �ottant (5.0/2.0=2.5)
Le modulo (%) ne porte que sur des entiers, il fournit le reste de la divisionde son premier opérande par son second (5%2=1).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 73
Les opérateurs en langage C Opérateurs arithmétiques
Les opérateurs arithmétiques en langage C
Les opérateurs arithmétiques sont des opérateurs binaires dé�nis, engénéral, pour deux opérandes de même type et fournissent un résultatde même type.
Remarque importante:Pour la division (/), le quotient de deux entiers donne un entier (5/2=2) etcelui de deux �ottants donne un �ottant (5.0/2.0=2.5)
Le modulo (%) ne porte que sur des entiers, il fournit le reste de la divisionde son premier opérande par son second (5%2=1).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 73
Les opérateurs en langage C Opérateurs arithmétiques
Les opérateurs arithmétiques en langage C
Les opérateurs arithmétiques sont des opérateurs binaires dé�nis, engénéral, pour deux opérandes de même type et fournissent un résultatde même type.
Remarque importante:Pour la division (/), le quotient de deux entiers donne un entier (5/2=2) etcelui de deux �ottants donne un �ottant (5.0/2.0=2.5)
Le modulo (%) ne porte que sur des entiers, il fournit le reste de la divisionde son premier opérande par son second (5%2=1).
N. Alioua Chapitre 1: Langage C - introduction et notions de base 73
Les opérateurs en langage C Opérateurs arithmétiques
Ordre de priorité
L'ordre de priorité des opérateurs arithmétiques , du plus prioritaire aumoins prioritaire:- * et /: multiplication et division
- %: modulo
- + et -: addition et soustraction
Exemple: 2 + 3 * 7 = 23
En cas de besoin (ou de doute), on utilise les parenthèses pour indiquerles opérations à e�ectuer en priorité.
Exemple: (2 + 3) * 7 vaut 35
Remarque: le langage C ne dispose pas d'opérateur de puissance. Oncalcule la puissance soit par des multiplications successives, soit avec lafonction power de la bibliothèque standard stdlib.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 74
Les opérateurs en langage C Opérateurs arithmétiques
Ordre de priorité
L'ordre de priorité des opérateurs arithmétiques , du plus prioritaire aumoins prioritaire:- * et /: multiplication et division
- %: modulo
- + et -: addition et soustraction
Exemple: 2 + 3 * 7 = 23
En cas de besoin (ou de doute), on utilise les parenthèses pour indiquerles opérations à e�ectuer en priorité.
Exemple: (2 + 3) * 7 vaut 35
Remarque: le langage C ne dispose pas d'opérateur de puissance. Oncalcule la puissance soit par des multiplications successives, soit avec lafonction power de la bibliothèque standard stdlib.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 74
Les opérateurs en langage C Opérateurs arithmétiques
Ordre de priorité
L'ordre de priorité des opérateurs arithmétiques , du plus prioritaire aumoins prioritaire:- * et /: multiplication et division
- %: modulo
- + et -: addition et soustraction
Exemple: 2 + 3 * 7 = 23
En cas de besoin (ou de doute), on utilise les parenthèses pour indiquerles opérations à e�ectuer en priorité.
Exemple: (2 + 3) * 7 vaut 35
Remarque: le langage C ne dispose pas d'opérateur de puissance. Oncalcule la puissance soit par des multiplications successives, soit avec lafonction power de la bibliothèque standard stdlib.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 74
Les opérateurs en langage C Opérateurs arithmétiques
Exercice
Placer les parenthèses pour exprimer l'ordre de priorité de cesopérations:a + b * c
a * b + c % d
- c % d
- a + c % d
- a / - b + c
- a / - ( b + c )
N. Alioua Chapitre 1: Langage C - introduction et notions de base 75
Les opérateurs en langage C Opérateurs arithmétiques
Exercice
Placer les parenthèses pour exprimer l'ordre de priorité de cesopérations:a + b * c
a * b + c % d
- c % d
- a + c % d
- a / - b + c
- a / - ( b + c )
N. Alioua Chapitre 1: Langage C - introduction et notions de base 75
Les opérateurs en langage C Opérateurs arithmétiques
Exercice
Placer les parenthèses pour exprimer l'ordre de priorité de cesopérations:a + b * c ⇒ a + ( b * c )
a * b + c % d
- c % d
- a + c % d
- a / - b + c
- a / - ( b + c )
N. Alioua Chapitre 1: Langage C - introduction et notions de base 75
Les opérateurs en langage C Opérateurs arithmétiques
Exercice
Placer les parenthèses pour exprimer l'ordre de priorité de cesopérations:a + b * c ⇒ a + ( b * c )
a * b + c % d ⇒ ( a * b ) + ( c % d )
- c % d
- a + c % d
- a / - b + c
- a / - ( b + c )
N. Alioua Chapitre 1: Langage C - introduction et notions de base 75
Les opérateurs en langage C Opérateurs arithmétiques
Exercice
Placer les parenthèses pour exprimer l'ordre de priorité de cesopérations:a + b * c ⇒ a + ( b * c )
a * b + c % d ⇒ ( a * b ) + ( c % d )
- c % d ⇒ ( - c ) % d
- a + c % d
- a / - b + c
- a / - ( b + c )
N. Alioua Chapitre 1: Langage C - introduction et notions de base 75
Les opérateurs en langage C Opérateurs arithmétiques
Exercice
Placer les parenthèses pour exprimer l'ordre de priorité de cesopérations:a + b * c ⇒ a + ( b * c )
a * b + c % d ⇒ ( a * b ) + ( c % d )
- c % d ⇒ ( - c ) % d
- a + c % d ⇒ ( - a ) + ( c % d )
- a / - b + c
- a / - ( b + c )
N. Alioua Chapitre 1: Langage C - introduction et notions de base 75
Les opérateurs en langage C Opérateurs arithmétiques
Exercice
Placer les parenthèses pour exprimer l'ordre de priorité de cesopérations:a + b * c ⇒ a + ( b * c )
a * b + c % d ⇒ ( a * b ) + ( c % d )
- c % d ⇒ ( - c ) % d
- a + c % d ⇒ ( - a ) + ( c % d )
- a / - b + c ⇒ ( ( - a ) / ( - b ) ) + c
- a / - ( b + c )
N. Alioua Chapitre 1: Langage C - introduction et notions de base 75
Les opérateurs en langage C Opérateurs arithmétiques
Exercice
Placer les parenthèses pour exprimer l'ordre de priorité de cesopérations:a + b * c ⇒ a + ( b * c )
a * b + c % d ⇒ ( a * b ) + ( c % d )
- c % d ⇒ ( - c ) % d
- a + c % d ⇒ ( - a ) + ( c % d )
- a / - b + c ⇒ ( ( - a ) / ( - b ) ) + c
- a / - ( b + c ) ⇒( - a ) / ( - ( b + c ) )
N. Alioua Chapitre 1: Langage C - introduction et notions de base 75
Les opérateurs en langage C Opérateurs arithmétiques
Opérateurs arithmétiques et conversion de type
Les opérateurs arithmétiques peuvent porter sur des opérandes de typesdi�érents.
Un mécanisme de conversion est alors mis en place par le compilateur:
Règles de conversion automatique de type pour les opérateursbinaires:
(1) Deux entiers:
Tout d'abord, les types char et short sont convertis en int, on appelle cetteétape la promotion numérique.
Ensuite, le plus large des deux types est choisi selon l'ordre suivant. on appellecette étape la conversion d'ajustement de type: int, unsigned int, long, unsignedlong. (int est le plus faible et unsigned long le plus large)
(2) Un entier et un �ottant: Le type entier est converti dans le type durationnel.
(3) Deux �ottants: le plus large des deux types est choisi selon l'ordre suivant:�oat, double, long double. (�oat est le plus faible et long double le plus large)
N. Alioua Chapitre 1: Langage C - introduction et notions de base 76
Les opérateurs en langage C Opérateurs arithmétiques
Opérateurs arithmétiques et conversion de type
Les opérateurs arithmétiques peuvent porter sur des opérandes de typesdi�érents.
Un mécanisme de conversion est alors mis en place par le compilateur:
Règles de conversion automatique de type pour les opérateursbinaires:
(1) Deux entiers:
Tout d'abord, les types char et short sont convertis en int, on appelle cetteétape la promotion numérique.
Ensuite, le plus large des deux types est choisi selon l'ordre suivant. on appellecette étape la conversion d'ajustement de type: int, unsigned int, long, unsignedlong. (int est le plus faible et unsigned long le plus large)
(2) Un entier et un �ottant: Le type entier est converti dans le type durationnel.
(3) Deux �ottants: le plus large des deux types est choisi selon l'ordre suivant:�oat, double, long double. (�oat est le plus faible et long double le plus large)
N. Alioua Chapitre 1: Langage C - introduction et notions de base 76
Les opérateurs en langage C Opérateurs arithmétiques
Opérateurs arithmétiques et conversion de type
Les opérateurs arithmétiques peuvent porter sur des opérandes de typesdi�érents.
Un mécanisme de conversion est alors mis en place par le compilateur:
Règles de conversion automatique de type pour les opérateursbinaires:
(1) Deux entiers:
Tout d'abord, les types char et short sont convertis en int, on appelle cetteétape la promotion numérique.
Ensuite, le plus large des deux types est choisi selon l'ordre suivant. on appellecette étape la conversion d'ajustement de type: int, unsigned int, long, unsignedlong. (int est le plus faible et unsigned long le plus large)
(2) Un entier et un �ottant: Le type entier est converti dans le type durationnel.
(3) Deux �ottants: le plus large des deux types est choisi selon l'ordre suivant:�oat, double, long double. (�oat est le plus faible et long double le plus large)
N. Alioua Chapitre 1: Langage C - introduction et notions de base 76
Les opérateurs en langage C Opérateurs arithmétiques
Opérateurs arithmétiques et conversion de type
Les opérateurs arithmétiques peuvent porter sur des opérandes de typesdi�érents.
Un mécanisme de conversion est alors mis en place par le compilateur:
Règles de conversion automatique de type pour les opérateursbinaires:
(1) Deux entiers:
Tout d'abord, les types char et short sont convertis en int, on appelle cetteétape la promotion numérique.
Ensuite, le plus large des deux types est choisi selon l'ordre suivant. on appellecette étape la conversion d'ajustement de type: int, unsigned int, long, unsignedlong. (int est le plus faible et unsigned long le plus large)
(2) Un entier et un �ottant: Le type entier est converti dans le type durationnel.
(3) Deux �ottants: le plus large des deux types est choisi selon l'ordre suivant:�oat, double, long double. (�oat est le plus faible et long double le plus large)
N. Alioua Chapitre 1: Langage C - introduction et notions de base 76
Les opérateurs en langage C Opérateurs arithmétiques
Opérateurs arithmétiques et conversion de type
Les opérateurs arithmétiques peuvent porter sur des opérandes de typesdi�érents.
Un mécanisme de conversion est alors mis en place par le compilateur:
Règles de conversion automatique de type pour les opérateursbinaires:
(1) Deux entiers:
Tout d'abord, les types char et short sont convertis en int, on appelle cetteétape la promotion numérique.
Ensuite, le plus large des deux types est choisi selon l'ordre suivant. on appellecette étape la conversion d'ajustement de type: int, unsigned int, long, unsignedlong. (int est le plus faible et unsigned long le plus large)
(2) Un entier et un �ottant: Le type entier est converti dans le type durationnel.
(3) Deux �ottants: le plus large des deux types est choisi selon l'ordre suivant:�oat, double, long double. (�oat est le plus faible et long double le plus large)
N. Alioua Chapitre 1: Langage C - introduction et notions de base 76
Les opérateurs en langage C Opérateurs arithmétiques
Opérateurs arithmétiques et conversion de type
Les opérateurs arithmétiques peuvent porter sur des opérandes de typesdi�érents.
Un mécanisme de conversion est alors mis en place par le compilateur:
Règles de conversion automatique de type pour les opérateursbinaires:
(1) Deux entiers:
Tout d'abord, les types char et short sont convertis en int, on appelle cetteétape la promotion numérique.
Ensuite, le plus large des deux types est choisi selon l'ordre suivant. on appellecette étape la conversion d'ajustement de type: int, unsigned int, long, unsignedlong. (int est le plus faible et unsigned long le plus large)
(2) Un entier et un �ottant: Le type entier est converti dans le type durationnel.
(3) Deux �ottants: le plus large des deux types est choisi selon l'ordre suivant:�oat, double, long double. (�oat est le plus faible et long double le plus large)
N. Alioua Chapitre 1: Langage C - introduction et notions de base 76
Les opérateurs en langage C Opérateurs arithmétiques
Opérateurs arithmétiques et conversion de type
Les opérateurs arithmétiques peuvent porter sur des opérandes de typesdi�érents.
Un mécanisme de conversion est alors mis en place par le compilateur:
Règles de conversion automatique de type pour les opérateursbinaires:
(1) Deux entiers:
Tout d'abord, les types char et short sont convertis en int, on appelle cetteétape la promotion numérique.
Ensuite, le plus large des deux types est choisi selon l'ordre suivant. on appellecette étape la conversion d'ajustement de type: int, unsigned int, long, unsignedlong. (int est le plus faible et unsigned long le plus large)
(2) Un entier et un �ottant: Le type entier est converti dans le type durationnel.
(3) Deux �ottants: le plus large des deux types est choisi selon l'ordre suivant:�oat, double, long double. (�oat est le plus faible et long double le plus large)
N. Alioua Chapitre 1: Langage C - introduction et notions de base 76
Les opérateurs en langage C Opérateurs arithmétiques
Opérateurs arithmétiques et conversion de type
Les opérateurs arithmétiques peuvent porter sur des opérandes de typesdi�érents.
Un mécanisme de conversion est alors mis en place par le compilateur:
Règles de conversion automatique de type pour les opérateursbinaires:
(1) Deux entiers:
Tout d'abord, les types char et short sont convertis en int, on appelle cetteétape la promotion numérique.
Ensuite, le plus large des deux types est choisi selon l'ordre suivant. on appellecette étape la conversion d'ajustement de type: int, unsigned int, long, unsignedlong. (int est le plus faible et unsigned long le plus large)
(2) Un entier et un �ottant: Le type entier est converti dans le type durationnel.
(3) Deux �ottants: le plus large des deux types est choisi selon l'ordre suivant:�oat, double, long double. (�oat est le plus faible et long double le plus large)
N. Alioua Chapitre 1: Langage C - introduction et notions de base 76
Les opérateurs en langage C Opérateurs arithmétiques
Remarques:
Les opérateurs numériques ne sont pas dé�nis pour les types char etshort, c'est pour cette raison qu'ils sont convertit en int par la biais dela promotion numérique.
La promotion numérique est aussi appelée conversion systématique, carelle est réalisée avant d'appliquer les règles de conversion d'ajustementde type
Les conversions d'ajustement de type considèrent les deux opérandesd'un seul opérateur à la fois (selon l'ordre de priorité) et non pasl'expression de façon globale
N. Alioua Chapitre 1: Langage C - introduction et notions de base 77
Les opérateurs en langage C Opérateurs arithmétiques
Remarques:
Les opérateurs numériques ne sont pas dé�nis pour les types char etshort, c'est pour cette raison qu'ils sont convertit en int par la biais dela promotion numérique.
La promotion numérique est aussi appelée conversion systématique, carelle est réalisée avant d'appliquer les règles de conversion d'ajustementde type
Les conversions d'ajustement de type considèrent les deux opérandesd'un seul opérateur à la fois (selon l'ordre de priorité) et non pasl'expression de façon globale
N. Alioua Chapitre 1: Langage C - introduction et notions de base 77
Les opérateurs en langage C Opérateurs arithmétiques
Remarques:
Les opérateurs numériques ne sont pas dé�nis pour les types char etshort, c'est pour cette raison qu'ils sont convertit en int par la biais dela promotion numérique.
La promotion numérique est aussi appelée conversion systématique, carelle est réalisée avant d'appliquer les règles de conversion d'ajustementde type
Les conversions d'ajustement de type considèrent les deux opérandesd'un seul opérateur à la fois (selon l'ordre de priorité) et non pasl'expression de façon globale
N. Alioua Chapitre 1: Langage C - introduction et notions de base 77
Les opérateurs en langage C Opérateurs arithmétiques
Exercice 1
Si c1, c2 sont de type char et n de type int, les expressions suivantesauront quels types et selon quels schémas?:1. c1 + n
2. c1 + 1
3. c1− c2
N. Alioua Chapitre 1: Langage C - introduction et notions de base 78
Les opérateurs en langage C Opérateurs arithmétiques
Exercice 1
Si c1, c2 sont de type char et n de type int, les expressions suivantesauront quels types et selon quels schémas?:1. c1 + n
2. c1 + 1
3. c1− c2
N. Alioua Chapitre 1: Langage C - introduction et notions de base 78
Les opérateurs en langage C Opérateurs arithmétiques
Exercice 1
Si c1, c2 sont de type char et n de type int, les expressions suivantesauront quels types et selon quels schémas?:1. c1 + n
2. c1 + 1
3. c1− c2
N. Alioua Chapitre 1: Langage C - introduction et notions de base 78
Les opérateurs en langage C Opérateurs arithmétiques
Exercice 1
Si c1, c2 sont de type char et n de type int, les expressions suivantesauront quels types et selon quels schémas?:1. c1 + n
2. c1 + 1
3. c1− c2
N. Alioua Chapitre 1: Langage C - introduction et notions de base 78
Les opérateurs en langage C Opérateurs arithmétiques
Exercice 1
Si c1, c2 sont de type char et n de type int, les expressions suivantesauront quels types et selon quels schémas?:1. c1 + n
2. c1 + 1
3. c1− c2
N. Alioua Chapitre 1: Langage C - introduction et notions de base 78
Les opérateurs en langage C Opérateurs arithmétiques
Exercice 2
Si n est de type int, p de type long et x de type �oat, l'expression :n ∗ p+ x aura quel type et selon quel schéma?
N. Alioua Chapitre 1: Langage C - introduction et notions de base 79
Les opérateurs en langage C Opérateurs arithmétiques
Exercice 2
Si n est de type int, p de type long et x de type �oat, l'expression :n ∗ p+ x aura quel type et selon quel schéma?
N. Alioua Chapitre 1: Langage C - introduction et notions de base 79
Les opérateurs en langage C Opérateurs arithmétiques
Exercice 3
Si p1, p2 et p3 sont de type short et x de type �oat, l'expression :p1 ∗ p2 + p3 ∗ x aura quel type et selon quel schéma?
N. Alioua Chapitre 1: Langage C - introduction et notions de base 80
Les opérateurs en langage C Opérateurs arithmétiques
Exercice 3
Si p1, p2 et p3 sont de type short et x de type �oat, l'expression :p1 ∗ p2 + p3 ∗ x aura quel type et selon quel schéma?
N. Alioua Chapitre 1: Langage C - introduction et notions de base 80
Les opérateurs en langage C Opérateurs arithmétiques
Exercice 4
Si on a les variables suivantes:int x=10, y=5;
double a=5.3, b=7.8;
char c='e', d='f';
Quelles valeurs sont données par les a�ectations suivantes:x=a+b;
y=2*x;
a=b/2;
c=c+1;
d=d-1;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 81
Les opérateurs en langage C Opérateurs arithmétiques
Exercice 4
Si on a les variables suivantes:int x=10, y=5;
double a=5.3, b=7.8;
char c='e', d='f';
Quelles valeurs sont données par les a�ectations suivantes:x=a+b;
y=2*x;
a=b/2;
c=c+1;
d=d-1;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 81
Les opérateurs en langage C Opérateurs arithmétiques
Exercice 4
Si on a les variables suivantes:int x=10, y=5;
double a=5.3, b=7.8;
char c='e', d='f';
Quelles valeurs sont données par les a�ectations suivantes:x=a+b; ⇒x: 13
y=2*x;
a=b/2;
c=c+1;
d=d-1;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 81
Les opérateurs en langage C Opérateurs arithmétiques
Exercice 4
Si on a les variables suivantes:int x=10, y=5;
double a=5.3, b=7.8;
char c='e', d='f';
Quelles valeurs sont données par les a�ectations suivantes:x=a+b; ⇒x: 13
y=2*x; ⇒y: 26
a=b/2;
c=c+1;
d=d-1;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 81
Les opérateurs en langage C Opérateurs arithmétiques
Exercice 4
Si on a les variables suivantes:int x=10, y=5;
double a=5.3, b=7.8;
char c='e', d='f';
Quelles valeurs sont données par les a�ectations suivantes:x=a+b; ⇒x: 13
y=2*x; ⇒y: 26
a=b/2; ⇒a: 3.9
c=c+1;
d=d-1;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 81
Les opérateurs en langage C Opérateurs arithmétiques
Exercice 4
Si on a les variables suivantes:int x=10, y=5;
double a=5.3, b=7.8;
char c='e', d='f';
Quelles valeurs sont données par les a�ectations suivantes:x=a+b; ⇒x: 13
y=2*x; ⇒y: 26
a=b/2; ⇒a: 3.9
c=c+1; ⇒c: 'f' ou le code 102
d=d-1;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 81
Les opérateurs en langage C Opérateurs arithmétiques
Exercice 4
Si on a les variables suivantes:int x=10, y=5;
double a=5.3, b=7.8;
char c='e', d='f';
Quelles valeurs sont données par les a�ectations suivantes:x=a+b; ⇒x: 13
y=2*x; ⇒y: 26
a=b/2; ⇒a: 3.9
c=c+1; ⇒c: 'f' ou le code 102
d=d-1; ⇒d: 'e' ou le code 101
N. Alioua Chapitre 1: Langage C - introduction et notions de base 81
Les opérateurs en langage C Opérateurs arithmétiques
Opérateur raccourcis d'incrémentation
L'opérateur d'incrémentation est : � ++ �
L'expression nombre++; est équivalente à l'expression nombre = nombre + 1;
On a deux types d'incrémentation :- Postincrémentation: nombre++;
- Préincrémentation: ++nombre;
Exemples:x=i++; // équivalent à x=i; i=i+1;
x=++i; //équivalent à i=i+1; x=i;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 82
Les opérateurs en langage C Opérateurs arithmétiques
Opérateur raccourcis d'incrémentation
L'opérateur d'incrémentation est : � ++ �
L'expression nombre++; est équivalente à l'expression nombre = nombre + 1;
On a deux types d'incrémentation :- Postincrémentation: nombre++;
- Préincrémentation: ++nombre;
Exemples:x=i++; // équivalent à x=i; i=i+1;
x=++i; //équivalent à i=i+1; x=i;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 82
Les opérateurs en langage C Opérateurs arithmétiques
Opérateur raccourcis d'incrémentation
L'opérateur d'incrémentation est : � ++ �
L'expression nombre++; est équivalente à l'expression nombre = nombre + 1;
On a deux types d'incrémentation :- Postincrémentation: nombre++;
- Préincrémentation: ++nombre;
Exemples:x=i++; // équivalent à x=i; i=i+1;
x=++i; //équivalent à i=i+1; x=i;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 82
Les opérateurs en langage C Opérateurs arithmétiques
Opérateur raccourcis d'incrémentation
L'opérateur d'incrémentation est : � ++ �
L'expression nombre++; est équivalente à l'expression nombre = nombre + 1;
On a deux types d'incrémentation :- Postincrémentation: nombre++;
- Préincrémentation: ++nombre;
Exemples:x=i++; // équivalent à x=i; i=i+1;
x=++i; //équivalent à i=i+1; x=i;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 82
Les opérateurs en langage C Opérateurs arithmétiques
Opérateur raccourcis d'incrémentation
L'opérateur d'incrémentation est : � ++ �
L'expression nombre++; est équivalente à l'expression nombre = nombre + 1;
On a deux types d'incrémentation :- Postincrémentation: nombre++;
- Préincrémentation: ++nombre;
Exemples:x=i++; // équivalent à x=i; i=i+1;
x=++i; //équivalent à i=i+1; x=i;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 82
Les opérateurs en langage C Opérateurs arithmétiques
Opérateur raccourcis d'incrémentation
L'opérateur d'incrémentation est : � ++ �
L'expression nombre++; est équivalente à l'expression nombre = nombre + 1;
On a deux types d'incrémentation :- Postincrémentation: nombre++;
- Préincrémentation: ++nombre;
Exemples:x=i++; // équivalent à x=i; i=i+1;
x=++i; //équivalent à i=i+1; x=i;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 82
Les opérateurs en langage C Opérateurs arithmétiques
Opérateur raccourcis de décrémentation
L'opérateur de décrémentation est : � - - �
L'expression nombre- -; est équivalente à l'expression nombre = nombre - 1;
On a deux types d'incrémentation :- Postdécrémentation: nombre- -;
- Prédécrémentation: - -nombre;
Exemples:x=i- -; // équivalent à x=i; i=i-1;
x=- -i; // équivalent à i=i-1; x=i;
Remarque: Les opérateurs d'incrémentation et de décrémentation ontune priorité plus élevée que celle des opérateurs arithmétiques,relationnelles et logiques
N. Alioua Chapitre 1: Langage C - introduction et notions de base 83
Les opérateurs en langage C Opérateurs arithmétiques
Opérateur raccourcis de décrémentation
L'opérateur de décrémentation est : � - - �
L'expression nombre- -; est équivalente à l'expression nombre = nombre - 1;
On a deux types d'incrémentation :- Postdécrémentation: nombre- -;
- Prédécrémentation: - -nombre;
Exemples:x=i- -; // équivalent à x=i; i=i-1;
x=- -i; // équivalent à i=i-1; x=i;
Remarque: Les opérateurs d'incrémentation et de décrémentation ontune priorité plus élevée que celle des opérateurs arithmétiques,relationnelles et logiques
N. Alioua Chapitre 1: Langage C - introduction et notions de base 83
Les opérateurs en langage C Opérateurs arithmétiques
Opérateur raccourcis de décrémentation
L'opérateur de décrémentation est : � - - �
L'expression nombre- -; est équivalente à l'expression nombre = nombre - 1;
On a deux types d'incrémentation :- Postdécrémentation: nombre- -;
- Prédécrémentation: - -nombre;
Exemples:x=i- -; // équivalent à x=i; i=i-1;
x=- -i; // équivalent à i=i-1; x=i;
Remarque: Les opérateurs d'incrémentation et de décrémentation ontune priorité plus élevée que celle des opérateurs arithmétiques,relationnelles et logiques
N. Alioua Chapitre 1: Langage C - introduction et notions de base 83
Les opérateurs en langage C Opérateurs arithmétiques
Opérateur raccourcis de décrémentation
L'opérateur de décrémentation est : � - - �
L'expression nombre- -; est équivalente à l'expression nombre = nombre - 1;
On a deux types d'incrémentation :- Postdécrémentation: nombre- -;
- Prédécrémentation: - -nombre;
Exemples:x=i- -; // équivalent à x=i; i=i-1;
x=- -i; // équivalent à i=i-1; x=i;
Remarque: Les opérateurs d'incrémentation et de décrémentation ontune priorité plus élevée que celle des opérateurs arithmétiques,relationnelles et logiques
N. Alioua Chapitre 1: Langage C - introduction et notions de base 83
Les opérateurs en langage C Opérateurs arithmétiques
Opérateur raccourcis de décrémentation
L'opérateur de décrémentation est : � - - �
L'expression nombre- -; est équivalente à l'expression nombre = nombre - 1;
On a deux types d'incrémentation :- Postdécrémentation: nombre- -;
- Prédécrémentation: - -nombre;
Exemples:x=i- -; // équivalent à x=i; i=i-1;
x=- -i; // équivalent à i=i-1; x=i;
Remarque: Les opérateurs d'incrémentation et de décrémentation ontune priorité plus élevée que celle des opérateurs arithmétiques,relationnelles et logiques
N. Alioua Chapitre 1: Langage C - introduction et notions de base 83
Les opérateurs en langage C Opérateurs arithmétiques
Opérateur raccourcis de décrémentation
L'opérateur de décrémentation est : � - - �
L'expression nombre- -; est équivalente à l'expression nombre = nombre - 1;
On a deux types d'incrémentation :- Postdécrémentation: nombre- -;
- Prédécrémentation: - -nombre;
Exemples:x=i- -; // équivalent à x=i; i=i-1;
x=- -i; // équivalent à i=i-1; x=i;
Remarque: Les opérateurs d'incrémentation et de décrémentation ontune priorité plus élevée que celle des opérateurs arithmétiques,relationnelles et logiques
N. Alioua Chapitre 1: Langage C - introduction et notions de base 83
Les opérateurs en langage C Opérateurs arithmétiques
Opérateur raccourcis de décrémentation
L'opérateur de décrémentation est : � - - �
L'expression nombre- -; est équivalente à l'expression nombre = nombre - 1;
On a deux types d'incrémentation :- Postdécrémentation: nombre- -;
- Prédécrémentation: - -nombre;
Exemples:x=i- -; // équivalent à x=i; i=i-1;
x=- -i; // équivalent à i=i-1; x=i;
Remarque: Les opérateurs d'incrémentation et de décrémentation ontune priorité plus élevée que celle des opérateurs arithmétiques,relationnelles et logiques
N. Alioua Chapitre 1: Langage C - introduction et notions de base 83
Les opérateurs en langage C Opérateurs arithmétiques
Autres Opérateurs raccourcis
Exemples:int x, y; x=3;y=5;x+=5; // équivalent à x=x+5, x aura la valeur 8x-=7; // équivalent à x=x-7, x aura la valeur 1y*=2; // équivalent à y=y*2, y aura la valeur 10y/=4; // équivalent à y=y/4, y aura la valeur 2. (et non pas 2.5 car son type est int)
N. Alioua Chapitre 1: Langage C - introduction et notions de base 84
Les opérateurs en langage C Opérateurs arithmétiques
Exercice
Si on a les variables suivantes:int x=10, y=5,a,b;
Quelles valeurs sont données par les instructions suivantes:a=x++;
b=++y;
a-=b;
b*=3;
x+=- -a + b++;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 85
Les opérateurs en langage C Opérateurs arithmétiques
Exercice
Si on a les variables suivantes:int x=10, y=5,a,b;
Quelles valeurs sont données par les instructions suivantes:a=x++;
b=++y;
a-=b;
b*=3;
x+=- -a + b++;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 85
Les opérateurs en langage C Opérateurs arithmétiques
Exercice
Si on a les variables suivantes:int x=10, y=5,a,b;
Quelles valeurs sont données par les instructions suivantes:a=x++; ⇒ a: 10 et x:11
b=++y;
a-=b;
b*=3;
x+=- -a + b++;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 85
Les opérateurs en langage C Opérateurs arithmétiques
Exercice
Si on a les variables suivantes:int x=10, y=5,a,b;
Quelles valeurs sont données par les instructions suivantes:a=x++; ⇒ a: 10 et x:11
b=++y; ⇒b: 6 et y:6
a-=b;
b*=3;
x+=- -a + b++;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 85
Les opérateurs en langage C Opérateurs arithmétiques
Exercice
Si on a les variables suivantes:int x=10, y=5,a,b;
Quelles valeurs sont données par les instructions suivantes:a=x++; ⇒ a: 10 et x:11
b=++y; ⇒b: 6 et y:6
a-=b; ⇒a: 4 et b:6
b*=3;
x+=- -a + b++;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 85
Les opérateurs en langage C Opérateurs arithmétiques
Exercice
Si on a les variables suivantes:int x=10, y=5,a,b;
Quelles valeurs sont données par les instructions suivantes:a=x++; ⇒ a: 10 et x:11
b=++y; ⇒b: 6 et y:6
a-=b; ⇒a: 4 et b:6
b*=3; ⇒b: 18
x+=- -a + b++;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 85
Les opérateurs en langage C Opérateurs arithmétiques
Exercice
Si on a les variables suivantes:int x=10, y=5,a,b;
Quelles valeurs sont données par les instructions suivantes:a=x++; ⇒ a: 10 et x:11
b=++y; ⇒b: 6 et y:6
a-=b; ⇒a: 4 et b:6
b*=3; ⇒b: 18
x+=- -a + b++; ⇒ x:32 et a: 3 et b: 19
N. Alioua Chapitre 1: Langage C - introduction et notions de base 85
Les opérateurs en langage C Opérateurs relationnels
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage COpérateurs arithmétiquesOpérateurs relationnelsOpérateur d'a�ectationOpérateurs logiquesAutres Opérateurs
N. Alioua Chapitre 1: Langage C - introduction et notions de base 86
Les opérateurs en langage C Opérateurs relationnels
Opérateurs relationnels
Soit l'expression: (2 ∗ a) > (b+ 5)
Résultat:- 0 si le résultat de la comparaison est faux, c-à-d (2 ∗ a) < (b+ 5)
- 1 (ou toute autre valeur non nulle) si le résultat de la comparaison est vrai.
Les expressions comparées sont soumises aux règles de conversion detype étudiées pour les opérateurs arithmétiques
N. Alioua Chapitre 1: Langage C - introduction et notions de base 87
Les opérateurs en langage C Opérateurs relationnels
Opérateurs relationnels
Soit l'expression: (2 ∗ a) > (b+ 5)
Résultat:- 0 si le résultat de la comparaison est faux, c-à-d (2 ∗ a) < (b+ 5)
- 1 (ou toute autre valeur non nulle) si le résultat de la comparaison est vrai.
Les expressions comparées sont soumises aux règles de conversion detype étudiées pour les opérateurs arithmétiques
N. Alioua Chapitre 1: Langage C - introduction et notions de base 87
Les opérateurs en langage C Opérateurs relationnels
Précédence alphabétique des caractères
La précédence des caractères dans l'alphabet d'une machine estdépendante du code de caractères utilisé.
Pour le code ASCII, nous pouvons constater l'ordre suivant:. . . ,0,1,2, ... ,9, . . . ,A,B,C, ... ,Z,a,b,c, ... ,z, . . .
Les symboles spéciaux (' ,+ ,- , ,{ ,] , ...) et les lettres accentuées (é,è ,à ,û , ...) se trouvent répartis autour des trois grands groupes decaractères (chi�res, majuscules, minuscules). Leur précédence necorrespond à aucune règle d'ordre spéci�que.
On peut déduire une relation de précédence 'est inférieur à' surl'ensemble des caractères.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 88
Les opérateurs en langage C Opérateurs relationnels
Précédence alphabétique des caractères
La précédence des caractères dans l'alphabet d'une machine estdépendante du code de caractères utilisé.
Pour le code ASCII, nous pouvons constater l'ordre suivant:. . . ,0,1,2, ... ,9, . . . ,A,B,C, ... ,Z,a,b,c, ... ,z, . . .
Les symboles spéciaux (' ,+ ,- , ,{ ,] , ...) et les lettres accentuées (é,è ,à ,û , ...) se trouvent répartis autour des trois grands groupes decaractères (chi�res, majuscules, minuscules). Leur précédence necorrespond à aucune règle d'ordre spéci�que.
On peut déduire une relation de précédence 'est inférieur à' surl'ensemble des caractères.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 88
Les opérateurs en langage C Opérateurs relationnels
Précédence alphabétique des caractères
La précédence des caractères dans l'alphabet d'une machine estdépendante du code de caractères utilisé.
Pour le code ASCII, nous pouvons constater l'ordre suivant:. . . ,0,1,2, ... ,9, . . . ,A,B,C, ... ,Z,a,b,c, ... ,z, . . .
Les symboles spéciaux (' ,+ ,- , ,{ ,] , ...) et les lettres accentuées (é,è ,à ,û , ...) se trouvent répartis autour des trois grands groupes decaractères (chi�res, majuscules, minuscules). Leur précédence necorrespond à aucune règle d'ordre spéci�que.
On peut déduire une relation de précédence 'est inférieur à' surl'ensemble des caractères.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 88
Les opérateurs en langage C Opérateurs relationnels
Précédence alphabétique des caractères
La précédence des caractères dans l'alphabet d'une machine estdépendante du code de caractères utilisé.
Pour le code ASCII, nous pouvons constater l'ordre suivant:. . . ,0,1,2, ... ,9, . . . ,A,B,C, ... ,Z,a,b,c, ... ,z, . . .
Les symboles spéciaux (' ,+ ,- , ,{ ,] , ...) et les lettres accentuées (é,è ,à ,û , ...) se trouvent répartis autour des trois grands groupes decaractères (chi�res, majuscules, minuscules). Leur précédence necorrespond à aucune règle d'ordre spéci�que.
On peut déduire une relation de précédence 'est inférieur à' surl'ensemble des caractères.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 88
Les opérateurs en langage C Opérateurs relationnels
Opérateurs relationnels
On peut dire que : '0' est inférieur à 'Z' qu'on note: '0' < 'Z'.
En e�et, en alphabet de la machine, le code du caractère '0' (ASCII:48) est inférieur à celui du caractère 'Z' (ASCII: 90).
Exemple:- Soit c1 < c2, avec c1 et c2 de type char
- L'expression est vraie si le code du caractère de c1 a une valeur inférieure aucode du caractère de c2.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 89
Les opérateurs en langage C Opérateurs relationnels
Opérateurs relationnels
On peut dire que : '0' est inférieur à 'Z' qu'on note: '0' < 'Z'.
En e�et, en alphabet de la machine, le code du caractère '0' (ASCII:48) est inférieur à celui du caractère 'Z' (ASCII: 90).
Exemple:- Soit c1 < c2, avec c1 et c2 de type char
- L'expression est vraie si le code du caractère de c1 a une valeur inférieure aucode du caractère de c2.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 89
Les opérateurs en langage C Opérateurs relationnels
Opérateurs relationnels
On peut dire que : '0' est inférieur à 'Z' qu'on note: '0' < 'Z'.
En e�et, en alphabet de la machine, le code du caractère '0' (ASCII:48) est inférieur à celui du caractère 'Z' (ASCII: 90).
Exemple:- Soit c1 < c2, avec c1 et c2 de type char
- L'expression est vraie si le code du caractère de c1 a une valeur inférieure aucode du caractère de c2.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 89
Les opérateurs en langage C Opérateurs relationnels
Exercice
Si on a les variables suivantes:int x=10, y=5;
char a='e', b='Z', c='9', d='E';
En considérant que le codage de la machine est le code ASCII, quellesvaleurs sont données par les instructions suivantes:x<=y;
x>=5;
(x+y)==(9+6);
(2*x)!=2;
a<b;
b>c;
d==a;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 90
Les opérateurs en langage C Opérateurs relationnels
Exercice
Si on a les variables suivantes:int x=10, y=5;
char a='e', b='Z', c='9', d='E';
En considérant que le codage de la machine est le code ASCII, quellesvaleurs sont données par les instructions suivantes:x<=y;
x>=5;
(x+y)==(9+6);
(2*x)!=2;
a<b;
b>c;
d==a;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 90
Les opérateurs en langage C Opérateurs relationnels
Exercice
Si on a les variables suivantes:int x=10, y=5;
char a='e', b='Z', c='9', d='E';
En considérant que le codage de la machine est le code ASCII, quellesvaleurs sont données par les instructions suivantes:x<=y; ⇒ 0
x>=5;
(x+y)==(9+6);
(2*x)!=2;
a<b;
b>c;
d==a;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 90
Les opérateurs en langage C Opérateurs relationnels
Exercice
Si on a les variables suivantes:int x=10, y=5;
char a='e', b='Z', c='9', d='E';
En considérant que le codage de la machine est le code ASCII, quellesvaleurs sont données par les instructions suivantes:x<=y; ⇒ 0
x>=5; ⇒ 1
(x+y)==(9+6);
(2*x)!=2;
a<b;
b>c;
d==a;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 90
Les opérateurs en langage C Opérateurs relationnels
Exercice
Si on a les variables suivantes:int x=10, y=5;
char a='e', b='Z', c='9', d='E';
En considérant que le codage de la machine est le code ASCII, quellesvaleurs sont données par les instructions suivantes:x<=y; ⇒ 0
x>=5; ⇒ 1
(x+y)==(9+6); ⇒ 1
(2*x)!=2;
a<b;
b>c;
d==a;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 90
Les opérateurs en langage C Opérateurs relationnels
Exercice
Si on a les variables suivantes:int x=10, y=5;
char a='e', b='Z', c='9', d='E';
En considérant que le codage de la machine est le code ASCII, quellesvaleurs sont données par les instructions suivantes:x<=y; ⇒ 0
x>=5; ⇒ 1
(x+y)==(9+6); ⇒ 1
(2*x)!=2; ⇒ 1
a<b;
b>c;
d==a;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 90
Les opérateurs en langage C Opérateurs relationnels
Exercice
Si on a les variables suivantes:int x=10, y=5;
char a='e', b='Z', c='9', d='E';
En considérant que le codage de la machine est le code ASCII, quellesvaleurs sont données par les instructions suivantes:x<=y; ⇒ 0
x>=5; ⇒ 1
(x+y)==(9+6); ⇒ 1
(2*x)!=2; ⇒ 1
a<b; ⇒ 0
b>c;
d==a;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 90
Les opérateurs en langage C Opérateurs relationnels
Exercice
Si on a les variables suivantes:int x=10, y=5;
char a='e', b='Z', c='9', d='E';
En considérant que le codage de la machine est le code ASCII, quellesvaleurs sont données par les instructions suivantes:x<=y; ⇒ 0
x>=5; ⇒ 1
(x+y)==(9+6); ⇒ 1
(2*x)!=2; ⇒ 1
a<b; ⇒ 0
b>c; ⇒ 1
d==a;
N. Alioua Chapitre 1: Langage C - introduction et notions de base 90
Les opérateurs en langage C Opérateurs relationnels
Exercice
Si on a les variables suivantes:int x=10, y=5;
char a='e', b='Z', c='9', d='E';
En considérant que le codage de la machine est le code ASCII, quellesvaleurs sont données par les instructions suivantes:x<=y; ⇒ 0
x>=5; ⇒ 1
(x+y)==(9+6); ⇒ 1
(2*x)!=2; ⇒ 1
a<b; ⇒ 0
b>c; ⇒ 1
d==a; ⇒ 0
N. Alioua Chapitre 1: Langage C - introduction et notions de base 90
Les opérateurs en langage C Opérateur d'a�ectation
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage COpérateurs arithmétiquesOpérateurs relationnelsOpérateur d'a�ectationOpérateurs logiquesAutres Opérateurs
N. Alioua Chapitre 1: Langage C - introduction et notions de base 91
Les opérateurs en langage C Opérateur d'a�ectation
Opérateur d'a�ectation
L'opérateur d'a�ectation � = � s'utilise selon la syntaxe:variable = expression;
L'opération d'a�ectation est associatif de droite à gauche.
Exemple:int x, y;x=3; // x reçoit la valeur 3y=x; // y reçoit la valeur de x, c'est à dire 3
y=x=5; // x reçoit la valeur 5 et y reçoit la valeur de x qui est 5
Lors d'une a�ectation, le résultat est toujours converti dans le typede la destination. Si ce type est plus faible, il peut y avoir une pertede précision.
Exemple: Si n est de type int et x de type double,l'a�ectation : n = x + 5.3 ; entraînera tout d'abord l'évaluation del'expression située à droite, ce qui fournira une valeur de type double;cette dernière sera ensuite convertie en int pour pouvoir être a�ectée à n.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 92
Les opérateurs en langage C Opérateur d'a�ectation
Opérateur d'a�ectation
L'opérateur d'a�ectation � = � s'utilise selon la syntaxe:variable = expression;
L'opération d'a�ectation est associatif de droite à gauche.
Exemple:int x, y;x=3; // x reçoit la valeur 3y=x; // y reçoit la valeur de x, c'est à dire 3
y=x=5; // x reçoit la valeur 5 et y reçoit la valeur de x qui est 5
Lors d'une a�ectation, le résultat est toujours converti dans le typede la destination. Si ce type est plus faible, il peut y avoir une pertede précision.
Exemple: Si n est de type int et x de type double,l'a�ectation : n = x + 5.3 ; entraînera tout d'abord l'évaluation del'expression située à droite, ce qui fournira une valeur de type double;cette dernière sera ensuite convertie en int pour pouvoir être a�ectée à n.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 92
Les opérateurs en langage C Opérateur d'a�ectation
Opérateur d'a�ectation
L'opérateur d'a�ectation � = � s'utilise selon la syntaxe:variable = expression;
L'opération d'a�ectation est associatif de droite à gauche.
Exemple:int x, y;x=3; // x reçoit la valeur 3y=x; // y reçoit la valeur de x, c'est à dire 3
y=x=5; // x reçoit la valeur 5 et y reçoit la valeur de x qui est 5
Lors d'une a�ectation, le résultat est toujours converti dans le typede la destination. Si ce type est plus faible, il peut y avoir une pertede précision.
Exemple: Si n est de type int et x de type double,l'a�ectation : n = x + 5.3 ; entraînera tout d'abord l'évaluation del'expression située à droite, ce qui fournira une valeur de type double;cette dernière sera ensuite convertie en int pour pouvoir être a�ectée à n.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 92
Les opérateurs en langage C Opérateur d'a�ectation
Opérateur d'a�ectation
L'opérateur d'a�ectation � = � s'utilise selon la syntaxe:variable = expression;
L'opération d'a�ectation est associatif de droite à gauche.
Exemple:int x, y;x=3; // x reçoit la valeur 3y=x; // y reçoit la valeur de x, c'est à dire 3
y=x=5; // x reçoit la valeur 5 et y reçoit la valeur de x qui est 5
Lors d'une a�ectation, le résultat est toujours converti dans le typede la destination. Si ce type est plus faible, il peut y avoir une pertede précision.
Exemple: Si n est de type int et x de type double,l'a�ectation : n = x + 5.3 ; entraînera tout d'abord l'évaluation del'expression située à droite, ce qui fournira une valeur de type double;cette dernière sera ensuite convertie en int pour pouvoir être a�ectée à n.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 92
Les opérateurs en langage C Opérateur d'a�ectation
Opérateur d'a�ectation
L'opérateur d'a�ectation � = � s'utilise selon la syntaxe:variable = expression;
L'opération d'a�ectation est associatif de droite à gauche.
Exemple:int x, y;x=3; // x reçoit la valeur 3y=x; // y reçoit la valeur de x, c'est à dire 3
y=x=5; // x reçoit la valeur 5 et y reçoit la valeur de x qui est 5
Lors d'une a�ectation, le résultat est toujours converti dans le typede la destination. Si ce type est plus faible, il peut y avoir une pertede précision.
Exemple: Si n est de type int et x de type double,l'a�ectation : n = x + 5.3 ; entraînera tout d'abord l'évaluation del'expression située à droite, ce qui fournira une valeur de type double;cette dernière sera ensuite convertie en int pour pouvoir être a�ectée à n.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 92
Les opérateurs en langage C Opérateur d'a�ectation
Opérateur d'a�ectation
L'a�ectation n'est pas commutative : A=B est di�érente de B=A
L'a�ectation est di�érente d'une équation mathématique :- A=A+1 a un sens en langages de programmation
- A+1=2 n'est pas possible en langages de programmation et n'est paséquivalente à A=1
L'a�ectation possède une associativité de droite à gauche.Exemple: int i,j; i = j = 5;
j prend la valeur 5 puis i prend cette même valeur est évaluée en premier,
N. Alioua Chapitre 1: Langage C - introduction et notions de base 93
Les opérateurs en langage C Opérateur d'a�ectation
Opérateur d'a�ectation
L'a�ectation n'est pas commutative : A=B est di�érente de B=A
L'a�ectation est di�érente d'une équation mathématique :- A=A+1 a un sens en langages de programmation
- A+1=2 n'est pas possible en langages de programmation et n'est paséquivalente à A=1
L'a�ectation possède une associativité de droite à gauche.Exemple: int i,j; i = j = 5;
j prend la valeur 5 puis i prend cette même valeur est évaluée en premier,
N. Alioua Chapitre 1: Langage C - introduction et notions de base 93
Les opérateurs en langage C Opérateur d'a�ectation
Opérateur d'a�ectation
L'a�ectation n'est pas commutative : A=B est di�érente de B=A
L'a�ectation est di�érente d'une équation mathématique :- A=A+1 a un sens en langages de programmation
- A+1=2 n'est pas possible en langages de programmation et n'est paséquivalente à A=1
L'a�ectation possède une associativité de droite à gauche.Exemple: int i,j; i = j = 5;
j prend la valeur 5 puis i prend cette même valeur est évaluée en premier,
N. Alioua Chapitre 1: Langage C - introduction et notions de base 93
Les opérateurs en langage C Opérateur d'a�ectation
Opérateur d'a�ectation
L'a�ectation n'est pas commutative : A=B est di�érente de B=A
L'a�ectation est di�érente d'une équation mathématique :- A=A+1 a un sens en langages de programmation
- A+1=2 n'est pas possible en langages de programmation et n'est paséquivalente à A=1
L'a�ectation possède une associativité de droite à gauche.Exemple: int i,j; i = j = 5;
j prend la valeur 5 puis i prend cette même valeur est évaluée en premier,
N. Alioua Chapitre 1: Langage C - introduction et notions de base 93
Les opérateurs en langage C Opérateur d'a�ectation
Opérateur d'a�ectation
L'a�ectation n'est pas commutative : A=B est di�érente de B=A
L'a�ectation est di�érente d'une équation mathématique :- A=A+1 a un sens en langages de programmation
- A+1=2 n'est pas possible en langages de programmation et n'est paséquivalente à A=1
L'a�ectation possède une associativité de droite à gauche.Exemple: int i,j; i = j = 5;
j prend la valeur 5 puis i prend cette même valeur est évaluée en premier,
N. Alioua Chapitre 1: Langage C - introduction et notions de base 93
Les opérateurs en langage C Opérateur d'a�ectation
Opérateur d'a�ectation
L'a�ectation n'est pas commutative : A=B est di�érente de B=A
L'a�ectation est di�érente d'une équation mathématique :- A=A+1 a un sens en langages de programmation
- A+1=2 n'est pas possible en langages de programmation et n'est paséquivalente à A=1
L'a�ectation possède une associativité de droite à gauche.Exemple: int i,j; i = j = 5;
j prend la valeur 5 puis i prend cette même valeur est évaluée en premier,
N. Alioua Chapitre 1: Langage C - introduction et notions de base 93
Les opérateurs en langage C Opérateur d'a�ectation
La notion de lvalue
L'opérateur d'a�ectation impose des restrictions sur son premieropérande, qui doit être une référence à un emplacement mémoire donton pourra modi�er la valeur.
Dans la syntaxe langage C, la notion de variable n'est pas assez précise.Il faut introduire un nouveau terme: lvalue.
lvalue: terme qui désigne une valeur à gauche (left value) et correspondà tout ce qui peut apparaître à gauche d'un opérateur d'a�ectation.
Jusqu'à cette partie du cours, les lvalue correspondent à toutes lesvariables de n'importe quel type de base. Nous étudierons d'autrelvalue plus tard.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 94
Les opérateurs en langage C Opérateur d'a�ectation
La notion de lvalue
L'opérateur d'a�ectation impose des restrictions sur son premieropérande, qui doit être une référence à un emplacement mémoire donton pourra modi�er la valeur.
Dans la syntaxe langage C, la notion de variable n'est pas assez précise.Il faut introduire un nouveau terme: lvalue.
lvalue: terme qui désigne une valeur à gauche (left value) et correspondà tout ce qui peut apparaître à gauche d'un opérateur d'a�ectation.
Jusqu'à cette partie du cours, les lvalue correspondent à toutes lesvariables de n'importe quel type de base. Nous étudierons d'autrelvalue plus tard.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 94
Les opérateurs en langage C Opérateur d'a�ectation
La notion de lvalue
L'opérateur d'a�ectation impose des restrictions sur son premieropérande, qui doit être une référence à un emplacement mémoire donton pourra modi�er la valeur.
Dans la syntaxe langage C, la notion de variable n'est pas assez précise.Il faut introduire un nouveau terme: lvalue.
lvalue: terme qui désigne une valeur à gauche (left value) et correspondà tout ce qui peut apparaître à gauche d'un opérateur d'a�ectation.
Jusqu'à cette partie du cours, les lvalue correspondent à toutes lesvariables de n'importe quel type de base. Nous étudierons d'autrelvalue plus tard.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 94
Les opérateurs en langage C Opérateur d'a�ectation
La notion de lvalue
L'opérateur d'a�ectation impose des restrictions sur son premieropérande, qui doit être une référence à un emplacement mémoire donton pourra modi�er la valeur.
Dans la syntaxe langage C, la notion de variable n'est pas assez précise.Il faut introduire un nouveau terme: lvalue.
lvalue: terme qui désigne une valeur à gauche (left value) et correspondà tout ce qui peut apparaître à gauche d'un opérateur d'a�ectation.
Jusqu'à cette partie du cours, les lvalue correspondent à toutes lesvariables de n'importe quel type de base. Nous étudierons d'autrelvalue plus tard.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 94
Les opérateurs en langage C Opérateur d'a�ectation
A�ectation sur di�érents types
L'a�ectation peut prendre des opérandes de types di�érents.
Cependant, contrairement aux autres opérateurs qui permettaient desconversions implicites, il n'est pas possible d'e�ectuer une quelconqueconversion de la lvalue.Une telle conversion reviendrait à changer le type de la lvalue �gurant àgauche de cet opérateur, ce qui n'a pas de sens.
Lorsque le type de l'expression �gurant à droite n'est pas du mêmetype que la lvalue, il y a conversion systématique de la valeur del'expression dans le type de la lvalue.
Cela peut donc conduire à une dégradation de l'information(convertir un double en int fait perdre la partie décimale).
Il est donc nécessaire de bien choisir les types de variables manipulés
N. Alioua Chapitre 1: Langage C - introduction et notions de base 95
Les opérateurs en langage C Opérateur d'a�ectation
A�ectation sur di�érents types
L'a�ectation peut prendre des opérandes de types di�érents.
Cependant, contrairement aux autres opérateurs qui permettaient desconversions implicites, il n'est pas possible d'e�ectuer une quelconqueconversion de la lvalue.Une telle conversion reviendrait à changer le type de la lvalue �gurant àgauche de cet opérateur, ce qui n'a pas de sens.
Lorsque le type de l'expression �gurant à droite n'est pas du mêmetype que la lvalue, il y a conversion systématique de la valeur del'expression dans le type de la lvalue.
Cela peut donc conduire à une dégradation de l'information(convertir un double en int fait perdre la partie décimale).
Il est donc nécessaire de bien choisir les types de variables manipulés
N. Alioua Chapitre 1: Langage C - introduction et notions de base 95
Les opérateurs en langage C Opérateur d'a�ectation
A�ectation sur di�érents types
L'a�ectation peut prendre des opérandes de types di�érents.
Cependant, contrairement aux autres opérateurs qui permettaient desconversions implicites, il n'est pas possible d'e�ectuer une quelconqueconversion de la lvalue.Une telle conversion reviendrait à changer le type de la lvalue �gurant àgauche de cet opérateur, ce qui n'a pas de sens.
Lorsque le type de l'expression �gurant à droite n'est pas du mêmetype que la lvalue, il y a conversion systématique de la valeur del'expression dans le type de la lvalue.
Cela peut donc conduire à une dégradation de l'information(convertir un double en int fait perdre la partie décimale).
Il est donc nécessaire de bien choisir les types de variables manipulés
N. Alioua Chapitre 1: Langage C - introduction et notions de base 95
Les opérateurs en langage C Opérateur d'a�ectation
A�ectation sur di�érents types
L'a�ectation peut prendre des opérandes de types di�érents.
Cependant, contrairement aux autres opérateurs qui permettaient desconversions implicites, il n'est pas possible d'e�ectuer une quelconqueconversion de la lvalue.Une telle conversion reviendrait à changer le type de la lvalue �gurant àgauche de cet opérateur, ce qui n'a pas de sens.
Lorsque le type de l'expression �gurant à droite n'est pas du mêmetype que la lvalue, il y a conversion systématique de la valeur del'expression dans le type de la lvalue.
Cela peut donc conduire à une dégradation de l'information(convertir un double en int fait perdre la partie décimale).
Il est donc nécessaire de bien choisir les types de variables manipulés
N. Alioua Chapitre 1: Langage C - introduction et notions de base 95
Les opérateurs en langage C Opérateur d'a�ectation
A�ectation sur di�érents types
L'a�ectation peut prendre des opérandes de types di�érents.
Cependant, contrairement aux autres opérateurs qui permettaient desconversions implicites, il n'est pas possible d'e�ectuer une quelconqueconversion de la lvalue.Une telle conversion reviendrait à changer le type de la lvalue �gurant àgauche de cet opérateur, ce qui n'a pas de sens.
Lorsque le type de l'expression �gurant à droite n'est pas du mêmetype que la lvalue, il y a conversion systématique de la valeur del'expression dans le type de la lvalue.
Cela peut donc conduire à une dégradation de l'information(convertir un double en int fait perdre la partie décimale).
Il est donc nécessaire de bien choisir les types de variables manipulés
N. Alioua Chapitre 1: Langage C - introduction et notions de base 95
Les opérateurs en langage C Opérateur d'a�ectation
A�ectation sur di�érents types
L'a�ectation peut prendre des opérandes de types di�érents.
Cependant, contrairement aux autres opérateurs qui permettaient desconversions implicites, il n'est pas possible d'e�ectuer une quelconqueconversion de la lvalue.Une telle conversion reviendrait à changer le type de la lvalue �gurant àgauche de cet opérateur, ce qui n'a pas de sens.
Lorsque le type de l'expression �gurant à droite n'est pas du mêmetype que la lvalue, il y a conversion systématique de la valeur del'expression dans le type de la lvalue.
Cela peut donc conduire à une dégradation de l'information(convertir un double en int fait perdre la partie décimale).
Il est donc nécessaire de bien choisir les types de variables manipulés
N. Alioua Chapitre 1: Langage C - introduction et notions de base 95
Les opérateurs en langage C Opérateurs logiques
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage COpérateurs arithmétiquesOpérateurs relationnelsOpérateur d'a�ectationOpérateurs logiquesAutres Opérateurs
N. Alioua Chapitre 1: Langage C - introduction et notions de base 96
Les opérateurs en langage C Opérateurs logiques
Opérateurs logiques
En langage C, trois opérateurs logiques classiques existent: ET noté&&, OU noté ‖, NON noté !
Une expression logique s'écrit: Opérande 1 opérateur Opérande 2, avecopérateur: &&, ‖ ou !
La seconde opérande (celle à droite) des opérateurs && et ‖ n'estévaluée que si la connaissance de sa valeur est indispensable pourdécider si l'expression correspondante est vraie ou fausse.N. Alioua Chapitre 1: Langage C - introduction et notions de base 97
Les opérateurs en langage C Opérateurs logiques
Opérateurs logiques binaires
Le C dispose aussi des opérateurs suivants &, | et ∧ pour e�ectuer desopérations bit à bit.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 98
Les opérateurs en langage C Opérateurs logiques
Priorités
L'opérateur ‖ est moins prioritaire que &&. Tous deux sont moinsprioritaires que les opérateurs arithmétiques ou relationnels. Exemple:a<b && c<d équivaut à (a<b) && (c<d)a<b ‖ c<d équivaut à (a<b) ‖ (c<d)
Les opérateurs && et ‖ en C ont une propriété intéressante:leur second opérande (situé à droite) n'est évalué que si la connaissance desa valeur est indispensable pour décider si l'expression est vraie ou fausse.
Exemple: pour l'expression a<b && c<d, on commence par évaluer a<b.Si le résultat est faux (0), il est inutile d'évaluer c<d puisque, de toutefaçon, l'expression complète aura la valeur faux (0).
Ce comportement doit être pris en compte lorsqu'on construit desconditions, en plaçant l'opérande le plus pertinent en premier
N. Alioua Chapitre 1: Langage C - introduction et notions de base 99
Les opérateurs en langage C Opérateurs logiques
Priorités
L'opérateur ‖ est moins prioritaire que &&. Tous deux sont moinsprioritaires que les opérateurs arithmétiques ou relationnels. Exemple:a<b && c<d équivaut à (a<b) && (c<d)a<b ‖ c<d équivaut à (a<b) ‖ (c<d)
Les opérateurs && et ‖ en C ont une propriété intéressante:leur second opérande (situé à droite) n'est évalué que si la connaissance desa valeur est indispensable pour décider si l'expression est vraie ou fausse.
Exemple: pour l'expression a<b && c<d, on commence par évaluer a<b.Si le résultat est faux (0), il est inutile d'évaluer c<d puisque, de toutefaçon, l'expression complète aura la valeur faux (0).
Ce comportement doit être pris en compte lorsqu'on construit desconditions, en plaçant l'opérande le plus pertinent en premier
N. Alioua Chapitre 1: Langage C - introduction et notions de base 99
Les opérateurs en langage C Opérateurs logiques
Priorités
L'opérateur ‖ est moins prioritaire que &&. Tous deux sont moinsprioritaires que les opérateurs arithmétiques ou relationnels. Exemple:a<b && c<d équivaut à (a<b) && (c<d)a<b ‖ c<d équivaut à (a<b) ‖ (c<d)
Les opérateurs && et ‖ en C ont une propriété intéressante:leur second opérande (situé à droite) n'est évalué que si la connaissance desa valeur est indispensable pour décider si l'expression est vraie ou fausse.
Exemple: pour l'expression a<b && c<d, on commence par évaluer a<b.Si le résultat est faux (0), il est inutile d'évaluer c<d puisque, de toutefaçon, l'expression complète aura la valeur faux (0).
Ce comportement doit être pris en compte lorsqu'on construit desconditions, en plaçant l'opérande le plus pertinent en premier
N. Alioua Chapitre 1: Langage C - introduction et notions de base 99
Les opérateurs en langage C Opérateurs logiques
Priorités
L'opérateur ‖ est moins prioritaire que &&. Tous deux sont moinsprioritaires que les opérateurs arithmétiques ou relationnels. Exemple:a<b && c<d équivaut à (a<b) && (c<d)a<b ‖ c<d équivaut à (a<b) ‖ (c<d)
Les opérateurs && et ‖ en C ont une propriété intéressante:leur second opérande (situé à droite) n'est évalué que si la connaissance desa valeur est indispensable pour décider si l'expression est vraie ou fausse.
Exemple: pour l'expression a<b && c<d, on commence par évaluer a<b.Si le résultat est faux (0), il est inutile d'évaluer c<d puisque, de toutefaçon, l'expression complète aura la valeur faux (0).
Ce comportement doit être pris en compte lorsqu'on construit desconditions, en plaçant l'opérande le plus pertinent en premier
N. Alioua Chapitre 1: Langage C - introduction et notions de base 99
Les opérateurs en langage C Opérateurs logiques
Priorités
L'opérateur ‖ est moins prioritaire que &&. Tous deux sont moinsprioritaires que les opérateurs arithmétiques ou relationnels. Exemple:a<b && c<d équivaut à (a<b) && (c<d)a<b ‖ c<d équivaut à (a<b) ‖ (c<d)
Les opérateurs && et ‖ en C ont une propriété intéressante:leur second opérande (situé à droite) n'est évalué que si la connaissance desa valeur est indispensable pour décider si l'expression est vraie ou fausse.
Exemple: pour l'expression a<b && c<d, on commence par évaluer a<b.Si le résultat est faux (0), il est inutile d'évaluer c<d puisque, de toutefaçon, l'expression complète aura la valeur faux (0).
Ce comportement doit être pris en compte lorsqu'on construit desconditions, en plaçant l'opérande le plus pertinent en premier
N. Alioua Chapitre 1: Langage C - introduction et notions de base 99
Les opérateurs en langage C Opérateurs logiques
Priorités
L'opérateur ‖ est moins prioritaire que &&. Tous deux sont moinsprioritaires que les opérateurs arithmétiques ou relationnels. Exemple:a<b && c<d équivaut à (a<b) && (c<d)a<b ‖ c<d équivaut à (a<b) ‖ (c<d)
Les opérateurs && et ‖ en C ont une propriété intéressante:leur second opérande (situé à droite) n'est évalué que si la connaissance desa valeur est indispensable pour décider si l'expression est vraie ou fausse.
Exemple: pour l'expression a<b && c<d, on commence par évaluer a<b.Si le résultat est faux (0), il est inutile d'évaluer c<d puisque, de toutefaçon, l'expression complète aura la valeur faux (0).
Ce comportement doit être pris en compte lorsqu'on construit desconditions, en plaçant l'opérande le plus pertinent en premier
N. Alioua Chapitre 1: Langage C - introduction et notions de base 99
Les opérateurs en langage C Opérateurs logiques
Exercice
Si on a les variables suivantes:int x=10, y=5;
char a='e', b='Z';
En considérant que le codage de la machine est le code ASCII, quellesvaleurs sont données par les instructions suivantes:(x<=y ‖ x>=5);(x!=3 && a<b);
!(x<=y ‖ x>=5);
N. Alioua Chapitre 1: Langage C - introduction et notions de base 100
Les opérateurs en langage C Opérateurs logiques
Exercice
Si on a les variables suivantes:int x=10, y=5;
char a='e', b='Z';
En considérant que le codage de la machine est le code ASCII, quellesvaleurs sont données par les instructions suivantes:(x<=y ‖ x>=5);(x!=3 && a<b);
!(x<=y ‖ x>=5);
N. Alioua Chapitre 1: Langage C - introduction et notions de base 100
Les opérateurs en langage C Opérateurs logiques
Exercice
Si on a les variables suivantes:int x=10, y=5;
char a='e', b='Z';
En considérant que le codage de la machine est le code ASCII, quellesvaleurs sont données par les instructions suivantes:(x<=y ‖ x>=5); ⇒ 0 ou 1 donc 1
(x!=3 && a<b);
!(x<=y ‖ x>=5);
N. Alioua Chapitre 1: Langage C - introduction et notions de base 100
Les opérateurs en langage C Opérateurs logiques
Exercice
Si on a les variables suivantes:int x=10, y=5;
char a='e', b='Z';
En considérant que le codage de la machine est le code ASCII, quellesvaleurs sont données par les instructions suivantes:(x<=y ‖ x>=5); ⇒ 0 ou 1 donc 1
(x!=3 && a<b); ⇒ 1 et 0 donc 0
!(x<=y ‖ x>=5);
N. Alioua Chapitre 1: Langage C - introduction et notions de base 100
Les opérateurs en langage C Opérateurs logiques
Exercice
Si on a les variables suivantes:int x=10, y=5;
char a='e', b='Z';
En considérant que le codage de la machine est le code ASCII, quellesvaleurs sont données par les instructions suivantes:(x<=y ‖ x>=5); ⇒ 0 ou 1 donc 1
(x!=3 && a<b); ⇒ 1 et 0 donc 0
!(x<=y ‖ x>=5); ⇒ Non 1 donc 0
N. Alioua Chapitre 1: Langage C - introduction et notions de base 100
Les opérateurs en langage C Autres Opérateurs
Plan
1 Introduction à la programmation en langage C
2 Éléments généraux d'un programme en langage C
3 Les types de base en langage C
4 Les variables et les constantes en langage C
5 Les opérateurs en langage COpérateurs arithmétiquesOpérateurs relationnelsOpérateur d'a�ectationOpérateurs logiquesAutres Opérateurs
N. Alioua Chapitre 1: Langage C - introduction et notions de base 101
Les opérateurs en langage C Autres Opérateurs
Opérateur de type forcé "cast"
Pour forcer la conversion dans un type donné, on utilise l'opérateur cast.
Syntaxe: (type) expression;
Exemple:int x=10, y=3;
(�oat) (x/y); // donne 3.0000
Notez que c'est le résultat de l'expression qui est forcé en �oat.
Si on n'utilise pas de parenthèse pour l'expression (�oat) x/y ; on aura lavaleur 3.3333 car on force x à devenir �oat puis y deviendra �oat par larègle de conversion implicite
N. Alioua Chapitre 1: Langage C - introduction et notions de base 102
Les opérateurs en langage C Autres Opérateurs
Opérateur de type forcé "cast"
Pour forcer la conversion dans un type donné, on utilise l'opérateur cast.
Syntaxe: (type) expression;
Exemple:int x=10, y=3;
(�oat) (x/y); // donne 3.0000
Notez que c'est le résultat de l'expression qui est forcé en �oat.
Si on n'utilise pas de parenthèse pour l'expression (�oat) x/y ; on aura lavaleur 3.3333 car on force x à devenir �oat puis y deviendra �oat par larègle de conversion implicite
N. Alioua Chapitre 1: Langage C - introduction et notions de base 102
Les opérateurs en langage C Autres Opérateurs
Opérateur de type forcé "cast"
Pour forcer la conversion dans un type donné, on utilise l'opérateur cast.
Syntaxe: (type) expression;
Exemple:int x=10, y=3;
(�oat) (x/y); // donne 3.0000
Notez que c'est le résultat de l'expression qui est forcé en �oat.
Si on n'utilise pas de parenthèse pour l'expression (�oat) x/y ; on aura lavaleur 3.3333 car on force x à devenir �oat puis y deviendra �oat par larègle de conversion implicite
N. Alioua Chapitre 1: Langage C - introduction et notions de base 102
Les opérateurs en langage C Autres Opérateurs
Opérateur de type forcé "cast"
Pour forcer la conversion dans un type donné, on utilise l'opérateur cast.
Syntaxe: (type) expression;
Exemple:int x=10, y=3;
(�oat) (x/y); // donne 3.0000
Notez que c'est le résultat de l'expression qui est forcé en �oat.
Si on n'utilise pas de parenthèse pour l'expression (�oat) x/y ; on aura lavaleur 3.3333 car on force x à devenir �oat puis y deviendra �oat par larègle de conversion implicite
N. Alioua Chapitre 1: Langage C - introduction et notions de base 102
Les opérateurs en langage C Autres Opérateurs
Opérateur de type forcé "cast"
Pour forcer la conversion dans un type donné, on utilise l'opérateur cast.
Syntaxe: (type) expression;
Exemple:int x=10, y=3;
(�oat) (x/y); // donne 3.0000
Notez que c'est le résultat de l'expression qui est forcé en �oat.
Si on n'utilise pas de parenthèse pour l'expression (�oat) x/y ; on aura lavaleur 3.3333 car on force x à devenir �oat puis y deviendra �oat par larègle de conversion implicite
N. Alioua Chapitre 1: Langage C - introduction et notions de base 102
Les opérateurs en langage C Autres Opérateurs
Opérateur séquentiel ","
L'opérateur séquentiel noté virgule "," permet d'exprimer plusieurscalculs successifs au sein d'une même expression.
Exemple: i++, j = i + k;évaluation de l'expression i++
évaluation de l'a�ectation j = i + k en utilisant la valeur de i aprèsincrémentation par l'expression précédente.
Cet opérateur séquentiel possède une associativité de gauche à droite etsa faible priorité évite l'usage de parenthèses:
Cet opérateur est fréquemment utilisé dans les instructionsconditionnelles ou les boucles: il permettra de placer plusieursexpressions là où on s'attend à trouver une seule expression
N. Alioua Chapitre 1: Langage C - introduction et notions de base 103
Les opérateurs en langage C Autres Opérateurs
Opérateur séquentiel ","
L'opérateur séquentiel noté virgule "," permet d'exprimer plusieurscalculs successifs au sein d'une même expression.
Exemple: i++, j = i + k;évaluation de l'expression i++
évaluation de l'a�ectation j = i + k en utilisant la valeur de i aprèsincrémentation par l'expression précédente.
Cet opérateur séquentiel possède une associativité de gauche à droite etsa faible priorité évite l'usage de parenthèses:
Cet opérateur est fréquemment utilisé dans les instructionsconditionnelles ou les boucles: il permettra de placer plusieursexpressions là où on s'attend à trouver une seule expression
N. Alioua Chapitre 1: Langage C - introduction et notions de base 103
Les opérateurs en langage C Autres Opérateurs
Opérateur séquentiel ","
L'opérateur séquentiel noté virgule "," permet d'exprimer plusieurscalculs successifs au sein d'une même expression.
Exemple: i++, j = i + k;évaluation de l'expression i++
évaluation de l'a�ectation j = i + k en utilisant la valeur de i aprèsincrémentation par l'expression précédente.
Cet opérateur séquentiel possède une associativité de gauche à droite etsa faible priorité évite l'usage de parenthèses:
Cet opérateur est fréquemment utilisé dans les instructionsconditionnelles ou les boucles: il permettra de placer plusieursexpressions là où on s'attend à trouver une seule expression
N. Alioua Chapitre 1: Langage C - introduction et notions de base 103
Les opérateurs en langage C Autres Opérateurs
Opérateur séquentiel ","
L'opérateur séquentiel noté virgule "," permet d'exprimer plusieurscalculs successifs au sein d'une même expression.
Exemple: i++, j = i + k;évaluation de l'expression i++
évaluation de l'a�ectation j = i + k en utilisant la valeur de i aprèsincrémentation par l'expression précédente.
Cet opérateur séquentiel possède une associativité de gauche à droite etsa faible priorité évite l'usage de parenthèses:
Cet opérateur est fréquemment utilisé dans les instructionsconditionnelles ou les boucles: il permettra de placer plusieursexpressions là où on s'attend à trouver une seule expression
N. Alioua Chapitre 1: Langage C - introduction et notions de base 103
Les opérateurs en langage C Autres Opérateurs
Opérateur séquentiel ","
L'opérateur séquentiel noté virgule "," permet d'exprimer plusieurscalculs successifs au sein d'une même expression.
Exemple: i++, j = i + k;évaluation de l'expression i++
évaluation de l'a�ectation j = i + k en utilisant la valeur de i aprèsincrémentation par l'expression précédente.
Cet opérateur séquentiel possède une associativité de gauche à droite etsa faible priorité évite l'usage de parenthèses:
Cet opérateur est fréquemment utilisé dans les instructionsconditionnelles ou les boucles: il permettra de placer plusieursexpressions là où on s'attend à trouver une seule expression
N. Alioua Chapitre 1: Langage C - introduction et notions de base 103
Les opérateurs en langage C Autres Opérateurs
Opérateur séquentiel ","
L'opérateur séquentiel noté virgule "," permet d'exprimer plusieurscalculs successifs au sein d'une même expression.
Exemple: i++, j = i + k;évaluation de l'expression i++
évaluation de l'a�ectation j = i + k en utilisant la valeur de i aprèsincrémentation par l'expression précédente.
Cet opérateur séquentiel possède une associativité de gauche à droite etsa faible priorité évite l'usage de parenthèses:
Cet opérateur est fréquemment utilisé dans les instructionsconditionnelles ou les boucles: il permettra de placer plusieursexpressions là où on s'attend à trouver une seule expression
N. Alioua Chapitre 1: Langage C - introduction et notions de base 103
Les opérateurs en langage C Autres Opérateurs
Opérateur sizeof
L'opérateur sizeof, qui ressemble à une fonction, fournit la taille enoctets.
Exemple:, si le type int est représenté sur 4 octets et le type double sur8 octets, et que:int n ;
double z ;
sizeof(n) vaudra 4
sizeof(z) vaudra 8
Cet opérateur peut également s'appliquer à un type donné. Dans lareprésentation précédente:sizeof(int) vaudra 4
sizeof(double) vaudra 8
Cet opérateur est utile pour:écrire des programmes portables dans lesquels il est nécessaire de connaîtrela taille exacte de certains objets.
éviter d'avoir à calculer soi-même la taille d'objets.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 104
Les opérateurs en langage C Autres Opérateurs
Opérateur sizeof
L'opérateur sizeof, qui ressemble à une fonction, fournit la taille enoctets.
Exemple:, si le type int est représenté sur 4 octets et le type double sur8 octets, et que:int n ;
double z ;
sizeof(n) vaudra 4
sizeof(z) vaudra 8
Cet opérateur peut également s'appliquer à un type donné. Dans lareprésentation précédente:sizeof(int) vaudra 4
sizeof(double) vaudra 8
Cet opérateur est utile pour:écrire des programmes portables dans lesquels il est nécessaire de connaîtrela taille exacte de certains objets.
éviter d'avoir à calculer soi-même la taille d'objets.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 104
Les opérateurs en langage C Autres Opérateurs
Opérateur sizeof
L'opérateur sizeof, qui ressemble à une fonction, fournit la taille enoctets.
Exemple:, si le type int est représenté sur 4 octets et le type double sur8 octets, et que:int n ;
double z ;
sizeof(n) vaudra 4
sizeof(z) vaudra 8
Cet opérateur peut également s'appliquer à un type donné. Dans lareprésentation précédente:sizeof(int) vaudra 4
sizeof(double) vaudra 8
Cet opérateur est utile pour:écrire des programmes portables dans lesquels il est nécessaire de connaîtrela taille exacte de certains objets.
éviter d'avoir à calculer soi-même la taille d'objets.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 104
Les opérateurs en langage C Autres Opérateurs
Opérateur sizeof
L'opérateur sizeof, qui ressemble à une fonction, fournit la taille enoctets.
Exemple:, si le type int est représenté sur 4 octets et le type double sur8 octets, et que:int n ;
double z ;
sizeof(n) vaudra 4
sizeof(z) vaudra 8
Cet opérateur peut également s'appliquer à un type donné. Dans lareprésentation précédente:sizeof(int) vaudra 4
sizeof(double) vaudra 8
Cet opérateur est utile pour:écrire des programmes portables dans lesquels il est nécessaire de connaîtrela taille exacte de certains objets.
éviter d'avoir à calculer soi-même la taille d'objets.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 104
Les opérateurs en langage C Autres Opérateurs
Opérateur sizeof
L'opérateur sizeof, qui ressemble à une fonction, fournit la taille enoctets.
Exemple:, si le type int est représenté sur 4 octets et le type double sur8 octets, et que:int n ;
double z ;
sizeof(n) vaudra 4
sizeof(z) vaudra 8
Cet opérateur peut également s'appliquer à un type donné. Dans lareprésentation précédente:sizeof(int) vaudra 4
sizeof(double) vaudra 8
Cet opérateur est utile pour:écrire des programmes portables dans lesquels il est nécessaire de connaîtrela taille exacte de certains objets.
éviter d'avoir à calculer soi-même la taille d'objets.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 104
Les opérateurs en langage C Autres Opérateurs
Opérateur sizeof
L'opérateur sizeof, qui ressemble à une fonction, fournit la taille enoctets.
Exemple:, si le type int est représenté sur 4 octets et le type double sur8 octets, et que:int n ;
double z ;
sizeof(n) vaudra 4
sizeof(z) vaudra 8
Cet opérateur peut également s'appliquer à un type donné. Dans lareprésentation précédente:sizeof(int) vaudra 4
sizeof(double) vaudra 8
Cet opérateur est utile pour:écrire des programmes portables dans lesquels il est nécessaire de connaîtrela taille exacte de certains objets.
éviter d'avoir à calculer soi-même la taille d'objets.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 104
Les opérateurs en langage C Autres Opérateurs
Opérateur sizeof
L'opérateur sizeof, qui ressemble à une fonction, fournit la taille enoctets.
Exemple:, si le type int est représenté sur 4 octets et le type double sur8 octets, et que:int n ;
double z ;
sizeof(n) vaudra 4
sizeof(z) vaudra 8
Cet opérateur peut également s'appliquer à un type donné. Dans lareprésentation précédente:sizeof(int) vaudra 4
sizeof(double) vaudra 8
Cet opérateur est utile pour:écrire des programmes portables dans lesquels il est nécessaire de connaîtrela taille exacte de certains objets.
éviter d'avoir à calculer soi-même la taille d'objets.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 104
Les opérateurs en langage C Autres Opérateurs
Opérateur sizeof
L'opérateur sizeof, qui ressemble à une fonction, fournit la taille enoctets.
Exemple:, si le type int est représenté sur 4 octets et le type double sur8 octets, et que:int n ;
double z ;
sizeof(n) vaudra 4
sizeof(z) vaudra 8
Cet opérateur peut également s'appliquer à un type donné. Dans lareprésentation précédente:sizeof(int) vaudra 4
sizeof(double) vaudra 8
Cet opérateur est utile pour:écrire des programmes portables dans lesquels il est nécessaire de connaîtrela taille exacte de certains objets.
éviter d'avoir à calculer soi-même la taille d'objets.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 104
Les opérateurs en langage C Autres Opérateurs
Opérateur sizeof
L'opérateur sizeof, qui ressemble à une fonction, fournit la taille enoctets.
Exemple:, si le type int est représenté sur 4 octets et le type double sur8 octets, et que:int n ;
double z ;
sizeof(n) vaudra 4
sizeof(z) vaudra 8
Cet opérateur peut également s'appliquer à un type donné. Dans lareprésentation précédente:sizeof(int) vaudra 4
sizeof(double) vaudra 8
Cet opérateur est utile pour:écrire des programmes portables dans lesquels il est nécessaire de connaîtrela taille exacte de certains objets.
éviter d'avoir à calculer soi-même la taille d'objets.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 104
Les opérateurs en langage C Autres Opérateurs
Opérateur sizeof
L'opérateur sizeof, qui ressemble à une fonction, fournit la taille enoctets.
Exemple:, si le type int est représenté sur 4 octets et le type double sur8 octets, et que:int n ;
double z ;
sizeof(n) vaudra 4
sizeof(z) vaudra 8
Cet opérateur peut également s'appliquer à un type donné. Dans lareprésentation précédente:sizeof(int) vaudra 4
sizeof(double) vaudra 8
Cet opérateur est utile pour:écrire des programmes portables dans lesquels il est nécessaire de connaîtrela taille exacte de certains objets.
éviter d'avoir à calculer soi-même la taille d'objets.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 104
Les opérateurs en langage C Autres Opérateurs
Opérateur sizeof
L'opérateur sizeof, qui ressemble à une fonction, fournit la taille enoctets.
Exemple:, si le type int est représenté sur 4 octets et le type double sur8 octets, et que:int n ;
double z ;
sizeof(n) vaudra 4
sizeof(z) vaudra 8
Cet opérateur peut également s'appliquer à un type donné. Dans lareprésentation précédente:sizeof(int) vaudra 4
sizeof(double) vaudra 8
Cet opérateur est utile pour:écrire des programmes portables dans lesquels il est nécessaire de connaîtrela taille exacte de certains objets.
éviter d'avoir à calculer soi-même la taille d'objets.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 104
Les opérateurs en langage C Autres Opérateurs
Opérateur sizeof
L'opérateur sizeof, qui ressemble à une fonction, fournit la taille enoctets.
Exemple:, si le type int est représenté sur 4 octets et le type double sur8 octets, et que:int n ;
double z ;
sizeof(n) vaudra 4
sizeof(z) vaudra 8
Cet opérateur peut également s'appliquer à un type donné. Dans lareprésentation précédente:sizeof(int) vaudra 4
sizeof(double) vaudra 8
Cet opérateur est utile pour:écrire des programmes portables dans lesquels il est nécessaire de connaîtrela taille exacte de certains objets.
éviter d'avoir à calculer soi-même la taille d'objets.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 104
Les opérateurs en langage C Autres Opérateurs
Conclusion
Dans ce chapitre nous avons vu:Une dé�nition de la programmation et sa relation avec l'algorithmique
Pourquoi on va étudier le langage C en particulier
Les notions de type, de variables et d'opérateurs en langage C
Dans le chapitre qui suit, nous allons étudié les di�érentes instructionsen langage C (autres que les instructions d'a�ectation que nous avonsétudié dans ce chapitre) à savoir:Les instructions d'entrée et de sortie (E/S) qui correspondent à la saisieet à l'a�chage
Les instructions de contrôle, à savoir:Les instructions conditionnelles
Les instructions répétitives
Les instructions inconditionnelles
N. Alioua Chapitre 1: Langage C - introduction et notions de base 105
Les opérateurs en langage C Autres Opérateurs
Conclusion
Dans ce chapitre nous avons vu:Une dé�nition de la programmation et sa relation avec l'algorithmique
Pourquoi on va étudier le langage C en particulier
Les notions de type, de variables et d'opérateurs en langage C
Dans le chapitre qui suit, nous allons étudié les di�érentes instructionsen langage C (autres que les instructions d'a�ectation que nous avonsétudié dans ce chapitre) à savoir:Les instructions d'entrée et de sortie (E/S) qui correspondent à la saisieet à l'a�chage
Les instructions de contrôle, à savoir:Les instructions conditionnelles
Les instructions répétitives
Les instructions inconditionnelles
N. Alioua Chapitre 1: Langage C - introduction et notions de base 105
Les opérateurs en langage C Autres Opérateurs
Conclusion
Dans ce chapitre nous avons vu:Une dé�nition de la programmation et sa relation avec l'algorithmique
Pourquoi on va étudier le langage C en particulier
Les notions de type, de variables et d'opérateurs en langage C
Dans le chapitre qui suit, nous allons étudié les di�érentes instructionsen langage C (autres que les instructions d'a�ectation que nous avonsétudié dans ce chapitre) à savoir:Les instructions d'entrée et de sortie (E/S) qui correspondent à la saisieet à l'a�chage
Les instructions de contrôle, à savoir:Les instructions conditionnelles
Les instructions répétitives
Les instructions inconditionnelles
N. Alioua Chapitre 1: Langage C - introduction et notions de base 105
Les opérateurs en langage C Autres Opérateurs
Conclusion
Dans ce chapitre nous avons vu:Une dé�nition de la programmation et sa relation avec l'algorithmique
Pourquoi on va étudier le langage C en particulier
Les notions de type, de variables et d'opérateurs en langage C
Dans le chapitre qui suit, nous allons étudié les di�érentes instructionsen langage C (autres que les instructions d'a�ectation que nous avonsétudié dans ce chapitre) à savoir:Les instructions d'entrée et de sortie (E/S) qui correspondent à la saisieet à l'a�chage
Les instructions de contrôle, à savoir:Les instructions conditionnelles
Les instructions répétitives
Les instructions inconditionnelles
N. Alioua Chapitre 1: Langage C - introduction et notions de base 105
Les opérateurs en langage C Autres Opérateurs
Conclusion
Dans ce chapitre nous avons vu:Une dé�nition de la programmation et sa relation avec l'algorithmique
Pourquoi on va étudier le langage C en particulier
Les notions de type, de variables et d'opérateurs en langage C
Dans le chapitre qui suit, nous allons étudié les di�érentes instructionsen langage C (autres que les instructions d'a�ectation que nous avonsétudié dans ce chapitre) à savoir:Les instructions d'entrée et de sortie (E/S) qui correspondent à la saisieet à l'a�chage
Les instructions de contrôle, à savoir:Les instructions conditionnelles
Les instructions répétitives
Les instructions inconditionnelles
N. Alioua Chapitre 1: Langage C - introduction et notions de base 105
Les opérateurs en langage C Autres Opérateurs
Conclusion
Dans ce chapitre nous avons vu:Une dé�nition de la programmation et sa relation avec l'algorithmique
Pourquoi on va étudier le langage C en particulier
Les notions de type, de variables et d'opérateurs en langage C
Dans le chapitre qui suit, nous allons étudié les di�érentes instructionsen langage C (autres que les instructions d'a�ectation que nous avonsétudié dans ce chapitre) à savoir:Les instructions d'entrée et de sortie (E/S) qui correspondent à la saisieet à l'a�chage
Les instructions de contrôle, à savoir:Les instructions conditionnelles
Les instructions répétitives
Les instructions inconditionnelles
N. Alioua Chapitre 1: Langage C - introduction et notions de base 105
Les opérateurs en langage C Autres Opérateurs
Conclusion
Dans ce chapitre nous avons vu:Une dé�nition de la programmation et sa relation avec l'algorithmique
Pourquoi on va étudier le langage C en particulier
Les notions de type, de variables et d'opérateurs en langage C
Dans le chapitre qui suit, nous allons étudié les di�érentes instructionsen langage C (autres que les instructions d'a�ectation que nous avonsétudié dans ce chapitre) à savoir:Les instructions d'entrée et de sortie (E/S) qui correspondent à la saisieet à l'a�chage
Les instructions de contrôle, à savoir:Les instructions conditionnelles
Les instructions répétitives
Les instructions inconditionnelles
N. Alioua Chapitre 1: Langage C - introduction et notions de base 105
Les opérateurs en langage C Autres Opérateurs
Conclusion
Dans ce chapitre nous avons vu:Une dé�nition de la programmation et sa relation avec l'algorithmique
Pourquoi on va étudier le langage C en particulier
Les notions de type, de variables et d'opérateurs en langage C
Dans le chapitre qui suit, nous allons étudié les di�érentes instructionsen langage C (autres que les instructions d'a�ectation que nous avonsétudié dans ce chapitre) à savoir:Les instructions d'entrée et de sortie (E/S) qui correspondent à la saisieet à l'a�chage
Les instructions de contrôle, à savoir:Les instructions conditionnelles
Les instructions répétitives
Les instructions inconditionnelles
N. Alioua Chapitre 1: Langage C - introduction et notions de base 105
Les opérateurs en langage C Autres Opérateurs
Conclusion
Dans ce chapitre nous avons vu:Une dé�nition de la programmation et sa relation avec l'algorithmique
Pourquoi on va étudier le langage C en particulier
Les notions de type, de variables et d'opérateurs en langage C
Dans le chapitre qui suit, nous allons étudié les di�érentes instructionsen langage C (autres que les instructions d'a�ectation que nous avonsétudié dans ce chapitre) à savoir:Les instructions d'entrée et de sortie (E/S) qui correspondent à la saisieet à l'a�chage
Les instructions de contrôle, à savoir:Les instructions conditionnelles
Les instructions répétitives
Les instructions inconditionnelles
N. Alioua Chapitre 1: Langage C - introduction et notions de base 105
Les opérateurs en langage C Autres Opérateurs
Conclusion
Dans ce chapitre nous avons vu:Une dé�nition de la programmation et sa relation avec l'algorithmique
Pourquoi on va étudier le langage C en particulier
Les notions de type, de variables et d'opérateurs en langage C
Dans le chapitre qui suit, nous allons étudié les di�érentes instructionsen langage C (autres que les instructions d'a�ectation que nous avonsétudié dans ce chapitre) à savoir:Les instructions d'entrée et de sortie (E/S) qui correspondent à la saisieet à l'a�chage
Les instructions de contrôle, à savoir:Les instructions conditionnelles
Les instructions répétitives
Les instructions inconditionnelles
N. Alioua Chapitre 1: Langage C - introduction et notions de base 105
Les opérateurs en langage C Autres Opérateurs
Résumé de la priorité et associativité des opérateurs en C
Prio/asso Op Desc Utilisation1 (G à D) () parenthèses (expression)
() Appel de fonction fonction(paramètres)[ ] contenu tableau Tableau[expression]++ Post-incrementation lvalue++- - Post-décrementation lvalue- -
2 (D à G) + plus unaire +expression- moins unaire -expression++ Pré-incrementation ++lvalue- - Pré-décrementation - -lvalue! non logique !expression∼ non bit à bit ∼expression(type) cast (type)expressionsizeof taille en octets sizeof(type ou expression)& adresse de lvalue &lvalue* contenu pointeur *pointeur
N. Alioua Chapitre 1: Langage C - introduction et notions de base 106
Les opérateurs en langage C Autres Opérateurs
Résumé de la priorité et associativité des opérateurs en C
Prio/asso Op Desc Utilisation3 (G à D) * Multiplication expresion*expression
/ Division expresion/expression% Modulo expression% expression
4 (G à D) + addition expression+expression- soustraction expression-expression
5 (G à D) � Décalage de bit à gauche expression�expression� Décalage de bit à droite expression�expression
6 (G à D) < inférieur expression<expression<= inférieur ou égal expression<=expression> supérieur expression>expression>= supérieur ou égal expression>=expression
7 (G à D) == égalité expression==expression!= inégalité expression!=expression
8 (G à D) & ET bit à bit expression&expression9 (G à D) ∧ XOR bit à bit expression∧expression10 (G à D) | OU bit à bit expression|expression
N. Alioua Chapitre 1: Langage C - introduction et notions de base 107
Les opérateurs en langage C Autres Opérateurs
Résumé de la priorité et associativité des opérateurs en C
Prio/asso Op Desc Utilisation11 (G à D) && ET logique expression&&expression12 (G à D) ‖ OU logique expression‖expression13 (D à G) ?: conditionnel expression?expression:expression
= a�ectation lvalue=expression*= racc * lvalue*=expression/= racc / lvalue/=expression%= racc % lvalue%=expression+= racc + lvalue+=expression-= racc - lvalue-=expression�= racc � lvalue�=expression�= racc � lvalue�=expression&= racc & lvalue&=expression|= racc | lvalue|=expression∧= racc ∧ lvalue∧=expression
Associativité D à G: a op b op c ⇒ a op ( b op c).
Associativité G à D: a op b op c ⇒ (a op b) op c.
N. Alioua Chapitre 1: Langage C - introduction et notions de base 108