429

Chapitre 1: Langage C - introduction et notions de base

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chapitre 1: Langage C - introduction et notions de base

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

Page 2: Chapitre 1: Langage C - introduction et notions de base

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

Page 3: Chapitre 1: Langage C - introduction et notions de base

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

Page 4: Chapitre 1: Langage C - introduction et notions de base

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

Page 5: Chapitre 1: Langage C - introduction et notions de base

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

Page 6: Chapitre 1: Langage C - introduction et notions de base

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

Page 7: Chapitre 1: Langage C - introduction et notions de base

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

Page 8: Chapitre 1: Langage C - introduction et notions de base

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

Page 9: Chapitre 1: Langage C - introduction et notions de base

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

Page 10: Chapitre 1: Langage C - introduction et notions de base

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

Page 11: Chapitre 1: Langage C - introduction et notions de base

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

Page 12: Chapitre 1: Langage C - introduction et notions de base

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

Page 13: Chapitre 1: Langage C - introduction et notions de base

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

Page 14: Chapitre 1: Langage C - introduction et notions de base

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

Page 15: Chapitre 1: Langage C - introduction et notions de base

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

Page 16: Chapitre 1: Langage C - introduction et notions de base

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

Page 17: Chapitre 1: Langage C - introduction et notions de base

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

Page 18: Chapitre 1: Langage C - introduction et notions de base

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

Page 19: Chapitre 1: Langage C - introduction et notions de base

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

Page 20: Chapitre 1: Langage C - introduction et notions de base

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

Page 21: Chapitre 1: Langage C - introduction et notions de base

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

Page 22: Chapitre 1: Langage C - introduction et notions de base

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

Page 23: Chapitre 1: Langage C - introduction et notions de base

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

Page 24: Chapitre 1: Langage C - introduction et notions de base

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

Page 25: Chapitre 1: Langage C - introduction et notions de base

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

Page 26: Chapitre 1: Langage C - introduction et notions de base

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

Page 27: Chapitre 1: Langage C - introduction et notions de base

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

Page 28: Chapitre 1: Langage C - introduction et notions de base

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

Page 29: Chapitre 1: Langage C - introduction et notions de base

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

Page 30: Chapitre 1: Langage C - introduction et notions de base

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

Page 31: Chapitre 1: Langage C - introduction et notions de base

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

Page 32: Chapitre 1: Langage C - introduction et notions de base

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

Page 33: Chapitre 1: Langage C - introduction et notions de base

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

Page 34: Chapitre 1: Langage C - introduction et notions de base

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

Page 35: Chapitre 1: Langage C - introduction et notions de base

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

Page 36: Chapitre 1: Langage C - introduction et notions de base

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

Page 37: Chapitre 1: Langage C - introduction et notions de base

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

Page 38: Chapitre 1: Langage C - introduction et notions de base

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

Page 39: Chapitre 1: Langage C - introduction et notions de base

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

Page 40: Chapitre 1: Langage C - introduction et notions de base

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

Page 41: Chapitre 1: Langage C - introduction et notions de base

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

Page 42: Chapitre 1: Langage C - introduction et notions de base

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

Page 43: Chapitre 1: Langage C - introduction et notions de base

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

Page 44: Chapitre 1: Langage C - introduction et notions de base

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

Page 45: Chapitre 1: Langage C - introduction et notions de base

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

Page 46: Chapitre 1: Langage C - introduction et notions de base

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

Page 47: Chapitre 1: Langage C - introduction et notions de base

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

Page 48: Chapitre 1: Langage C - introduction et notions de base

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

Page 49: Chapitre 1: Langage C - introduction et notions de base

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

Page 50: Chapitre 1: Langage C - introduction et notions de base

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

Page 51: Chapitre 1: Langage C - introduction et notions de base

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

Page 52: Chapitre 1: Langage C - introduction et notions de base

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

Page 53: Chapitre 1: Langage C - introduction et notions de base

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

Page 54: Chapitre 1: Langage C - introduction et notions de base

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

Page 55: Chapitre 1: Langage C - introduction et notions de base

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

Page 56: Chapitre 1: Langage C - introduction et notions de base

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

Page 57: Chapitre 1: Langage C - introduction et notions de base

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

Page 58: Chapitre 1: Langage C - introduction et notions de base

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

Page 59: Chapitre 1: Langage C - introduction et notions de base

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

Page 60: Chapitre 1: Langage C - introduction et notions de base

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

Page 61: Chapitre 1: Langage C - introduction et notions de base

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

Page 62: Chapitre 1: Langage C - introduction et notions de base

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

Page 63: Chapitre 1: Langage C - introduction et notions de base

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

Page 64: Chapitre 1: Langage C - introduction et notions de base

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

Page 65: Chapitre 1: Langage C - introduction et notions de base

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

Page 66: Chapitre 1: Langage C - introduction et notions de base

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

Page 67: Chapitre 1: Langage C - introduction et notions de base

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

Page 68: Chapitre 1: Langage C - introduction et notions de base

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

Page 69: Chapitre 1: Langage C - introduction et notions de base

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

Page 70: Chapitre 1: Langage C - introduction et notions de base

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

Page 71: Chapitre 1: Langage C - introduction et notions de base

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

Page 72: Chapitre 1: Langage C - introduction et notions de base

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

Page 73: Chapitre 1: Langage C - introduction et notions de base

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

Page 74: Chapitre 1: Langage C - introduction et notions de base

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

Page 75: Chapitre 1: Langage C - introduction et notions de base

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

Page 76: Chapitre 1: Langage C - introduction et notions de base

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

Page 77: Chapitre 1: Langage C - introduction et notions de base

É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

Page 78: Chapitre 1: Langage C - introduction et notions de base

É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

Page 79: Chapitre 1: Langage C - introduction et notions de base

É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

Page 80: Chapitre 1: Langage C - introduction et notions de base

É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

Page 81: Chapitre 1: Langage C - introduction et notions de base

É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

Page 82: Chapitre 1: Langage C - introduction et notions de base

É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

Page 83: Chapitre 1: Langage C - introduction et notions de base

É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

Page 84: Chapitre 1: Langage C - introduction et notions de base

É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

Page 85: Chapitre 1: Langage C - introduction et notions de base

É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

Page 86: Chapitre 1: Langage C - introduction et notions de base

É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

Page 87: Chapitre 1: Langage C - introduction et notions de base

É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

Page 88: Chapitre 1: Langage C - introduction et notions de base

É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

Page 89: Chapitre 1: Langage C - introduction et notions de base

É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

Page 90: Chapitre 1: Langage C - introduction et notions de base

É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

Page 91: Chapitre 1: Langage C - introduction et notions de base

É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

Page 92: Chapitre 1: Langage C - introduction et notions de base

É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

Page 93: Chapitre 1: Langage C - introduction et notions de base

É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

Page 94: Chapitre 1: Langage C - introduction et notions de base

É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

Page 95: Chapitre 1: Langage C - introduction et notions de base

É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

Page 96: Chapitre 1: Langage C - introduction et notions de base

É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

Page 97: Chapitre 1: Langage C - introduction et notions de base

É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

Page 98: Chapitre 1: Langage C - introduction et notions de base

É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

Page 99: Chapitre 1: Langage C - introduction et notions de base

É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

Page 100: Chapitre 1: Langage C - introduction et notions de base

É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

Page 101: Chapitre 1: Langage C - introduction et notions de base

É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

Page 102: Chapitre 1: Langage C - introduction et notions de base

É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

Page 103: Chapitre 1: Langage C - introduction et notions de base

É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

Page 104: Chapitre 1: Langage C - introduction et notions de base

É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

Page 105: Chapitre 1: Langage C - introduction et notions de base

É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

Page 106: Chapitre 1: Langage C - introduction et notions de base

É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

Page 107: Chapitre 1: Langage C - introduction et notions de base

É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

Page 108: Chapitre 1: Langage C - introduction et notions de base

É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

Page 109: Chapitre 1: Langage C - introduction et notions de base

É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

Page 110: Chapitre 1: Langage C - introduction et notions de base

É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

Page 111: Chapitre 1: Langage C - introduction et notions de base

É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

Page 112: Chapitre 1: Langage C - introduction et notions de base

É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

Page 113: Chapitre 1: Langage C - introduction et notions de base

É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

Page 114: Chapitre 1: Langage C - introduction et notions de base

É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

Page 115: Chapitre 1: Langage C - introduction et notions de base

É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

Page 116: Chapitre 1: Langage C - introduction et notions de base

É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

Page 117: Chapitre 1: Langage C - introduction et notions de base

É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

Page 118: Chapitre 1: Langage C - introduction et notions de base

É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

Page 119: Chapitre 1: Langage C - introduction et notions de base

É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

Page 120: Chapitre 1: Langage C - introduction et notions de base

É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

Page 121: Chapitre 1: Langage C - introduction et notions de base

É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

Page 122: Chapitre 1: Langage C - introduction et notions de base

É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

Page 123: Chapitre 1: Langage C - introduction et notions de base

É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

Page 124: Chapitre 1: Langage C - introduction et notions de base

É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

Page 125: Chapitre 1: Langage C - introduction et notions de base

É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

Page 126: Chapitre 1: Langage C - introduction et notions de base

É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

Page 127: Chapitre 1: Langage C - introduction et notions de base

É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

Page 128: Chapitre 1: Langage C - introduction et notions de base

É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

Page 129: Chapitre 1: Langage C - introduction et notions de base

É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

Page 130: Chapitre 1: Langage C - introduction et notions de base

É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

Page 131: Chapitre 1: Langage C - introduction et notions de base

É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

Page 132: Chapitre 1: Langage C - introduction et notions de base

É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

Page 133: Chapitre 1: Langage C - introduction et notions de base

É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

Page 134: Chapitre 1: Langage C - introduction et notions de base

É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

Page 135: Chapitre 1: Langage C - introduction et notions de base

É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

Page 136: Chapitre 1: Langage C - introduction et notions de base

É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

Page 137: Chapitre 1: Langage C - introduction et notions de base

É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

Page 138: Chapitre 1: Langage C - introduction et notions de base

É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

Page 139: Chapitre 1: Langage C - introduction et notions de base

É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

Page 140: Chapitre 1: Langage C - introduction et notions de base

É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

Page 141: Chapitre 1: Langage C - introduction et notions de base

É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

Page 142: Chapitre 1: Langage C - introduction et notions de base

É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

Page 143: Chapitre 1: Langage C - introduction et notions de base

É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

Page 144: Chapitre 1: Langage C - introduction et notions de base

É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

Page 145: Chapitre 1: Langage C - introduction et notions de base

É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

Page 146: Chapitre 1: Langage C - introduction et notions de base

É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

Page 147: Chapitre 1: Langage C - introduction et notions de base

É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

Page 148: Chapitre 1: Langage C - introduction et notions de base

É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

Page 149: Chapitre 1: Langage C - introduction et notions de base

É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

Page 150: Chapitre 1: Langage C - introduction et notions de base

É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

Page 151: Chapitre 1: Langage C - introduction et notions de base

É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

Page 152: Chapitre 1: Langage C - introduction et notions de base

É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

Page 153: Chapitre 1: Langage C - introduction et notions de base

É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

Page 154: Chapitre 1: Langage C - introduction et notions de base

É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

Page 155: Chapitre 1: Langage C - introduction et notions de base

É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

Page 156: Chapitre 1: Langage C - introduction et notions de base

É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

Page 157: Chapitre 1: Langage C - introduction et notions de base

É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

Page 158: Chapitre 1: Langage C - introduction et notions de base

É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

Page 159: Chapitre 1: Langage C - introduction et notions de base

É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

Page 160: Chapitre 1: Langage C - introduction et notions de base

É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

Page 161: Chapitre 1: Langage C - introduction et notions de base

É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

Page 162: Chapitre 1: Langage C - introduction et notions de base

É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

Page 163: Chapitre 1: Langage C - introduction et notions de base

É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

Page 164: Chapitre 1: Langage C - introduction et notions de base

É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

Page 165: Chapitre 1: Langage C - introduction et notions de base

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

Page 166: Chapitre 1: Langage C - introduction et notions de base

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

Page 167: Chapitre 1: Langage C - introduction et notions de base

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

Page 168: Chapitre 1: Langage C - introduction et notions de base

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

Page 169: Chapitre 1: Langage C - introduction et notions de base

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

Page 170: Chapitre 1: Langage C - introduction et notions de base

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

Page 171: Chapitre 1: Langage C - introduction et notions de base

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

Page 172: Chapitre 1: Langage C - introduction et notions de base

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

Page 173: Chapitre 1: Langage C - introduction et notions de base

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

Page 174: Chapitre 1: Langage C - introduction et notions de base

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

Page 175: Chapitre 1: Langage C - introduction et notions de base

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

Page 176: Chapitre 1: Langage C - introduction et notions de base

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

Page 177: Chapitre 1: Langage C - introduction et notions de base

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

Page 178: Chapitre 1: Langage C - introduction et notions de base

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

Page 179: Chapitre 1: Langage C - introduction et notions de base

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

Page 180: Chapitre 1: Langage C - introduction et notions de base

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

Page 181: Chapitre 1: Langage C - introduction et notions de base

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

Page 182: Chapitre 1: Langage C - introduction et notions de base

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

Page 183: Chapitre 1: Langage C - introduction et notions de base

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

Page 184: Chapitre 1: Langage C - introduction et notions de base

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

Page 185: Chapitre 1: Langage C - introduction et notions de base

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

Page 186: Chapitre 1: Langage C - introduction et notions de base

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

Page 187: Chapitre 1: Langage C - introduction et notions de base

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

Page 188: Chapitre 1: Langage C - introduction et notions de base

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

Page 189: Chapitre 1: Langage C - introduction et notions de base

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

Page 190: Chapitre 1: Langage C - introduction et notions de base

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

Page 191: Chapitre 1: Langage C - introduction et notions de base

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

Page 192: Chapitre 1: Langage C - introduction et notions de base

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

Page 193: Chapitre 1: Langage C - introduction et notions de base

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

Page 194: Chapitre 1: Langage C - introduction et notions de base

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

Page 195: Chapitre 1: Langage C - introduction et notions de base

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

Page 196: Chapitre 1: Langage C - introduction et notions de base

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

Page 197: Chapitre 1: Langage C - introduction et notions de base

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

Page 198: Chapitre 1: Langage C - introduction et notions de base

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

Page 199: Chapitre 1: Langage C - introduction et notions de base

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

Page 200: Chapitre 1: Langage C - introduction et notions de base

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

Page 201: Chapitre 1: Langage C - introduction et notions de base

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

Page 202: Chapitre 1: Langage C - introduction et notions de base

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

Page 203: Chapitre 1: Langage C - introduction et notions de base

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

Page 204: Chapitre 1: Langage C - introduction et notions de base

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

Page 205: Chapitre 1: Langage C - introduction et notions de base

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

Page 206: Chapitre 1: Langage C - introduction et notions de base

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

Page 207: Chapitre 1: Langage C - introduction et notions de base

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

Page 208: Chapitre 1: Langage C - introduction et notions de base

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

Page 209: Chapitre 1: Langage C - introduction et notions de base

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

Page 210: Chapitre 1: Langage C - introduction et notions de base

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

Page 211: Chapitre 1: Langage C - introduction et notions de base

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

Page 212: Chapitre 1: Langage C - introduction et notions de base

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

Page 213: Chapitre 1: Langage C - introduction et notions de base

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

Page 214: Chapitre 1: Langage C - introduction et notions de base

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

Page 215: Chapitre 1: Langage C - introduction et notions de base

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

Page 216: Chapitre 1: Langage C - introduction et notions de base

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

Page 217: Chapitre 1: Langage C - introduction et notions de base

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

Page 218: Chapitre 1: Langage C - introduction et notions de base

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

Page 219: Chapitre 1: Langage C - introduction et notions de base

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

Page 220: Chapitre 1: Langage C - introduction et notions de base

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

Page 221: Chapitre 1: Langage C - introduction et notions de base

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

Page 222: Chapitre 1: Langage C - introduction et notions de base

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

Page 223: Chapitre 1: Langage C - introduction et notions de base

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

Page 224: Chapitre 1: Langage C - introduction et notions de base

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

Page 225: Chapitre 1: Langage C - introduction et notions de base

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

Page 226: Chapitre 1: Langage C - introduction et notions de base

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

Page 227: Chapitre 1: Langage C - introduction et notions de base

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

Page 228: Chapitre 1: Langage C - introduction et notions de base

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

Page 229: Chapitre 1: Langage C - introduction et notions de base

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

Page 230: Chapitre 1: Langage C - introduction et notions de base

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

Page 231: Chapitre 1: Langage C - introduction et notions de base

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

Page 232: Chapitre 1: Langage C - introduction et notions de base

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

Page 233: Chapitre 1: Langage C - introduction et notions de base

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

Page 234: Chapitre 1: Langage C - introduction et notions de base

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

Page 235: Chapitre 1: Langage C - introduction et notions de base

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

Page 236: Chapitre 1: Langage C - introduction et notions de base

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

Page 237: Chapitre 1: Langage C - introduction et notions de base

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

Page 238: Chapitre 1: Langage C - introduction et notions de base

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

Page 239: Chapitre 1: Langage C - introduction et notions de base

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

Page 240: Chapitre 1: Langage C - introduction et notions de base

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

Page 241: Chapitre 1: Langage C - introduction et notions de base

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

Page 242: Chapitre 1: Langage C - introduction et notions de base

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

Page 243: Chapitre 1: Langage C - introduction et notions de base

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

Page 244: Chapitre 1: Langage C - introduction et notions de base

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

Page 245: Chapitre 1: Langage C - introduction et notions de base

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

Page 246: Chapitre 1: Langage C - introduction et notions de base

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

Page 247: Chapitre 1: Langage C - introduction et notions de base

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

Page 248: Chapitre 1: Langage C - introduction et notions de base

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

Page 249: Chapitre 1: Langage C - introduction et notions de base

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

Page 250: Chapitre 1: Langage C - introduction et notions de base

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

Page 251: Chapitre 1: Langage C - introduction et notions de base

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

Page 252: Chapitre 1: Langage C - introduction et notions de base

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

Page 253: Chapitre 1: Langage C - introduction et notions de base

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

Page 254: Chapitre 1: Langage C - introduction et notions de base

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

Page 255: Chapitre 1: Langage C - introduction et notions de base

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

Page 256: Chapitre 1: Langage C - introduction et notions de base

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

Page 257: Chapitre 1: Langage C - introduction et notions de base

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

Page 258: Chapitre 1: Langage C - introduction et notions de base

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

Page 259: Chapitre 1: Langage C - introduction et notions de base

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

Page 260: Chapitre 1: Langage C - introduction et notions de base

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

Page 261: Chapitre 1: Langage C - introduction et notions de base

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

Page 262: Chapitre 1: Langage C - introduction et notions de base

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

Page 263: Chapitre 1: Langage C - introduction et notions de base

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

Page 264: Chapitre 1: Langage C - introduction et notions de base

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

Page 265: Chapitre 1: Langage C - introduction et notions de base

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

Page 266: Chapitre 1: Langage C - introduction et notions de base

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

Page 267: Chapitre 1: Langage C - introduction et notions de base

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

Page 268: Chapitre 1: Langage C - introduction et notions de base

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

Page 269: Chapitre 1: Langage C - introduction et notions de base

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

Page 270: Chapitre 1: Langage C - introduction et notions de base

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

Page 271: Chapitre 1: Langage C - introduction et notions de base

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

Page 272: Chapitre 1: Langage C - introduction et notions de base

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

Page 273: Chapitre 1: Langage C - introduction et notions de base

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

Page 274: Chapitre 1: Langage C - introduction et notions de base

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

Page 275: Chapitre 1: Langage C - introduction et notions de base

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

Page 276: Chapitre 1: Langage C - introduction et notions de base

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

Page 277: Chapitre 1: Langage C - introduction et notions de base

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

Page 278: Chapitre 1: Langage C - introduction et notions de base

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

Page 279: Chapitre 1: Langage C - introduction et notions de base

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

Page 280: Chapitre 1: Langage C - introduction et notions de base

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

Page 281: Chapitre 1: Langage C - introduction et notions de base

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

Page 282: Chapitre 1: Langage C - introduction et notions de base

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

Page 283: Chapitre 1: Langage C - introduction et notions de base

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

Page 284: Chapitre 1: Langage C - introduction et notions de base

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

Page 285: Chapitre 1: Langage C - introduction et notions de base

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

Page 286: Chapitre 1: Langage C - introduction et notions de base

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

Page 287: Chapitre 1: Langage C - introduction et notions de base

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

Page 288: Chapitre 1: Langage C - introduction et notions de base

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

Page 289: Chapitre 1: Langage C - introduction et notions de base

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

Page 290: Chapitre 1: Langage C - introduction et notions de base

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

Page 291: Chapitre 1: Langage C - introduction et notions de base

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

Page 292: Chapitre 1: Langage C - introduction et notions de base

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

Page 293: Chapitre 1: Langage C - introduction et notions de base

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

Page 294: Chapitre 1: Langage C - introduction et notions de base

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

Page 295: Chapitre 1: Langage C - introduction et notions de base

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

Page 296: Chapitre 1: Langage C - introduction et notions de base

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

Page 297: Chapitre 1: Langage C - introduction et notions de base

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

Page 298: Chapitre 1: Langage C - introduction et notions de base

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

Page 299: Chapitre 1: Langage C - introduction et notions de base

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

Page 300: Chapitre 1: Langage C - introduction et notions de base

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

Page 301: Chapitre 1: Langage C - introduction et notions de base

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

Page 302: Chapitre 1: Langage C - introduction et notions de base

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

Page 303: Chapitre 1: Langage C - introduction et notions de base

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

Page 304: Chapitre 1: Langage C - introduction et notions de base

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

Page 305: Chapitre 1: Langage C - introduction et notions de base

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

Page 306: Chapitre 1: Langage C - introduction et notions de base

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

Page 307: Chapitre 1: Langage C - introduction et notions de base

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

Page 308: Chapitre 1: Langage C - introduction et notions de base

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

Page 309: Chapitre 1: Langage C - introduction et notions de base

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

Page 310: Chapitre 1: Langage C - introduction et notions de base

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

Page 311: Chapitre 1: Langage C - introduction et notions de base

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

Page 312: Chapitre 1: Langage C - introduction et notions de base

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

Page 313: Chapitre 1: Langage C - introduction et notions de base

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

Page 314: Chapitre 1: Langage C - introduction et notions de base

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

Page 315: Chapitre 1: Langage C - introduction et notions de base

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

Page 316: Chapitre 1: Langage C - introduction et notions de base

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

Page 317: Chapitre 1: Langage C - introduction et notions de base

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

Page 318: Chapitre 1: Langage C - introduction et notions de base

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

Page 319: Chapitre 1: Langage C - introduction et notions de base

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

Page 320: Chapitre 1: Langage C - introduction et notions de base

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

Page 321: Chapitre 1: Langage C - introduction et notions de base

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

Page 322: Chapitre 1: Langage C - introduction et notions de base

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

Page 323: Chapitre 1: Langage C - introduction et notions de base

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

Page 324: Chapitre 1: Langage C - introduction et notions de base

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

Page 325: Chapitre 1: Langage C - introduction et notions de base

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

Page 326: Chapitre 1: Langage C - introduction et notions de base

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

Page 327: Chapitre 1: Langage C - introduction et notions de base

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

Page 328: Chapitre 1: Langage C - introduction et notions de base

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

Page 329: Chapitre 1: Langage C - introduction et notions de base

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

Page 330: Chapitre 1: Langage C - introduction et notions de base

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

Page 331: Chapitre 1: Langage C - introduction et notions de base

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

Page 332: Chapitre 1: Langage C - introduction et notions de base

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

Page 333: Chapitre 1: Langage C - introduction et notions de base

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

Page 334: Chapitre 1: Langage C - introduction et notions de base

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

Page 335: Chapitre 1: Langage C - introduction et notions de base

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

Page 336: Chapitre 1: Langage C - introduction et notions de base

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

Page 337: Chapitre 1: Langage C - introduction et notions de base

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

Page 338: Chapitre 1: Langage C - introduction et notions de base

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

Page 339: Chapitre 1: Langage C - introduction et notions de base

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

Page 340: Chapitre 1: Langage C - introduction et notions de base

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

Page 341: Chapitre 1: Langage C - introduction et notions de base

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

Page 342: Chapitre 1: Langage C - introduction et notions de base

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

Page 343: Chapitre 1: Langage C - introduction et notions de base

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

Page 344: Chapitre 1: Langage C - introduction et notions de base

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

Page 345: Chapitre 1: Langage C - introduction et notions de base

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

Page 346: Chapitre 1: Langage C - introduction et notions de base

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

Page 347: Chapitre 1: Langage C - introduction et notions de base

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

Page 348: Chapitre 1: Langage C - introduction et notions de base

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

Page 349: Chapitre 1: Langage C - introduction et notions de base

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

Page 350: Chapitre 1: Langage C - introduction et notions de base

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

Page 351: Chapitre 1: Langage C - introduction et notions de base

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

Page 352: Chapitre 1: Langage C - introduction et notions de base

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

Page 353: Chapitre 1: Langage C - introduction et notions de base

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

Page 354: Chapitre 1: Langage C - introduction et notions de base

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

Page 355: Chapitre 1: Langage C - introduction et notions de base

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

Page 356: Chapitre 1: Langage C - introduction et notions de base

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

Page 357: Chapitre 1: Langage C - introduction et notions de base

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

Page 358: Chapitre 1: Langage C - introduction et notions de base

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

Page 359: Chapitre 1: Langage C - introduction et notions de base

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

Page 360: Chapitre 1: Langage C - introduction et notions de base

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

Page 361: Chapitre 1: Langage C - introduction et notions de base

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

Page 362: Chapitre 1: Langage C - introduction et notions de base

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

Page 363: Chapitre 1: Langage C - introduction et notions de base

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

Page 364: Chapitre 1: Langage C - introduction et notions de base

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

Page 365: Chapitre 1: Langage C - introduction et notions de base

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

Page 366: Chapitre 1: Langage C - introduction et notions de base

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

Page 367: Chapitre 1: Langage C - introduction et notions de base

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

Page 368: Chapitre 1: Langage C - introduction et notions de base

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

Page 369: Chapitre 1: Langage C - introduction et notions de base

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

Page 370: Chapitre 1: Langage C - introduction et notions de base

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

Page 371: Chapitre 1: Langage C - introduction et notions de base

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

Page 372: Chapitre 1: Langage C - introduction et notions de base

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

Page 373: Chapitre 1: Langage C - introduction et notions de base

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

Page 374: Chapitre 1: Langage C - introduction et notions de base

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

Page 375: Chapitre 1: Langage C - introduction et notions de base

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

Page 376: Chapitre 1: Langage C - introduction et notions de base

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

Page 377: Chapitre 1: Langage C - introduction et notions de base

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

Page 378: Chapitre 1: Langage C - introduction et notions de base

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

Page 379: Chapitre 1: Langage C - introduction et notions de base

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

Page 380: Chapitre 1: Langage C - introduction et notions de base

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

Page 381: Chapitre 1: Langage C - introduction et notions de base

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

Page 382: Chapitre 1: Langage C - introduction et notions de base

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

Page 383: Chapitre 1: Langage C - introduction et notions de base

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

Page 384: Chapitre 1: Langage C - introduction et notions de base

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

Page 385: Chapitre 1: Langage C - introduction et notions de base

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

Page 386: Chapitre 1: Langage C - introduction et notions de base

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

Page 387: Chapitre 1: Langage C - introduction et notions de base

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

Page 388: Chapitre 1: Langage C - introduction et notions de base

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

Page 389: Chapitre 1: Langage C - introduction et notions de base

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

Page 390: Chapitre 1: Langage C - introduction et notions de base

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

Page 391: Chapitre 1: Langage C - introduction et notions de base

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

Page 392: Chapitre 1: Langage C - introduction et notions de base

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

Page 393: Chapitre 1: Langage C - introduction et notions de base

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

Page 394: Chapitre 1: Langage C - introduction et notions de base

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

Page 395: Chapitre 1: Langage C - introduction et notions de base

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

Page 396: Chapitre 1: Langage C - introduction et notions de base

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

Page 397: Chapitre 1: Langage C - introduction et notions de base

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

Page 398: Chapitre 1: Langage C - introduction et notions de base

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

Page 399: Chapitre 1: Langage C - introduction et notions de base

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

Page 400: Chapitre 1: Langage C - introduction et notions de base

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

Page 401: Chapitre 1: Langage C - introduction et notions de base

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

Page 402: Chapitre 1: Langage C - introduction et notions de base

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

Page 403: Chapitre 1: Langage C - introduction et notions de base

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

Page 404: Chapitre 1: Langage C - introduction et notions de base

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

Page 405: Chapitre 1: Langage C - introduction et notions de base

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

Page 406: Chapitre 1: Langage C - introduction et notions de base

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

Page 407: Chapitre 1: Langage C - introduction et notions de base

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

Page 408: Chapitre 1: Langage C - introduction et notions de base

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

Page 409: Chapitre 1: Langage C - introduction et notions de base

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

Page 410: Chapitre 1: Langage C - introduction et notions de base

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

Page 411: Chapitre 1: Langage C - introduction et notions de base

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

Page 412: Chapitre 1: Langage C - introduction et notions de base

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

Page 413: Chapitre 1: Langage C - introduction et notions de base

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

Page 414: Chapitre 1: Langage C - introduction et notions de base

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

Page 415: Chapitre 1: Langage C - introduction et notions de base

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

Page 416: Chapitre 1: Langage C - introduction et notions de base

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

Page 417: Chapitre 1: Langage C - introduction et notions de base

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

Page 418: Chapitre 1: Langage C - introduction et notions de base

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

Page 419: Chapitre 1: Langage C - introduction et notions de base

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

Page 420: Chapitre 1: Langage C - introduction et notions de base

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

Page 421: Chapitre 1: Langage C - introduction et notions de base

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

Page 422: Chapitre 1: Langage C - introduction et notions de base

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

Page 423: Chapitre 1: Langage C - introduction et notions de base

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

Page 424: Chapitre 1: Langage C - introduction et notions de base

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

Page 425: Chapitre 1: Langage C - introduction et notions de base

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

Page 426: Chapitre 1: Langage C - introduction et notions de base

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

Page 427: Chapitre 1: Langage C - introduction et notions de base

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

Page 428: Chapitre 1: Langage C - introduction et notions de base

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

Page 429: Chapitre 1: Langage C - introduction et notions de base

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