Introduction
Nous allons, tout au long de ce chapitre, étudier l'ensemble des types que fournit le langage C ainsi que
l'utilisation des variables.
La notion de type
La mémoire centrale est un ensemble de "positions binaires" nommées bits. Les bits sont regroupés en
octets (8bits), et chaque octet est repéré par son adresse.
L'ordinateur, ne sait représenter et traiter que des informations exprimées sous forme binaire. Toute
information, quelle que soit sa nature, devra être codée sous cette forme. Dans ces conditions, il ne suffit
pas de connaître le contenu d'un emplacement de la mémoire pour être en mesure de lui attribuer une
signification.
Par exemple, si un octet contient la valeur binaire suivant :1000 1101 alors ça peut représenter un
nombre entier positif ou négatif, comme elle peut représenter un nombre réel ou un caractère, ou même
une instruction de programme, ou un graphique …..
Donc il n'est pas possible d'attribuer une signification à une information binaire tant que l'on ne connaît
pas la manière dont elle a été codée et son type.
C manipule deux types de base: les entiers et les nombres flottants.
Les entiers
En C, on dispose de divers types d'entiers qui se distinguent par la place qu'ils occupent en mémoire :
o sur 1 octet, les entiers signés et non signés (char) et (unsigned char).
o sur 2 octets, les entiers signés et non signés (short) et (unsigned short).
o sur 4 octets, les entiers signés et non signés (long) et (unsigned long).
o le type int (unsigned int) est selon les machines synonymes de short (unsigned short) ou de long
(unsigned long)
Le type char
Le type char désigne un entier signé codé sur 1 octet. Il en découle que toutes les opérations autorisées sur
les entiers peuvent être utilisées sur les caractères. Aussi surprenant que cela puisse paraître, on peut
ajouter ou soustraire deux caractères, ajouter ou soustraire un entier à un caractère.
Une utilisation classique de cette souplesse d'utilisation est la conversion d'un caractère c désignant un
chiffre en sa valeur v correspondante:
v = c - '0'
Les types short, long ou int
Le type short représente un entier signé codé sur 2 octets (de -32768 à 32767) et le type unsigned short
représente un entier non signé codé sur 2 octets (de 0 à 65535). Le type long (ou int pour nos machines)
Langage C
5
représente un entier signé codé sur 4 octets (de -2147843648 à 2147843647) et le type unsigned long (ou
unsigned int pour nos machines) représente un entier non signé codé sur 4 octets (de 0 à 4294967295).
Le type réel
Les nombres à virgule flottante (abusivement appelés réels) servent à coder de manière approchée les
nombres réels. Un nombre à virgule flottante est composé d'un signe, d'une mantisse et d'un exposant. On
dispose de trois types de nombres à virgule flottante, les types float, double et long double.
Les floats
Un float est codé sur 4 octets avec 1 bit de signe, 23 bits de mantisse et 8 bits d'exposant (valeurs
comprises entre 3.4 * 10-38 et 3.4 * 1038).
Les doubles
Un double est codé sur 8 octets avec 1 bit de signe, 52 bits de mantisse et 11 bits d'exposant (valeurs
comprises entre 1.7 * 10-308 et 1.7 * 10308).
Les long doubles
Un long double est codé sur 10 octets avec 1 bit de signe, 64 bits de mantisse et 15 bits d'exposant
(valeurs comprises entre 3.4 * 10-4932 3.4 * 104932 ).
Les constantes
Nous avons présenté les divers types de données élémentaires du langage C sans dire comment écrire une
constante de l'un de ces types dans un programme C. Nous allons à présent donner la syntaxe utilisée dans
le langage C pour désigner des constantes littérales.
Les constantes entières
Les constantes entières peuvent s'exprimer
o en notation décimale: 123, -123, etc...
o en notation octale avec un 0 en première position: 0123
o en notation hexadécimale avec les caractères 0x ou 0X en première position : 0x1b 0X2c, 0X1B,
0X2C, etc...
Le type d'une constante entière est le << plus petit >> type dans lequel il peut être représenté :
o notation décimale : int, sinon long, sinon unsigned long
o notation octale ou décimale : int, sinon unsigned int, sinon unsigned long
Des suffixes permettent de changer cette classification :
o U, u : constante de type unsigned
o L, l : constante de type long
Exemple.
Langage C
6
1L, 0x7FFU, 16UL, etc...
Les constantes flottantes
Une constante flottante se présente sous la forme d'une suite de chiffres (partie entière), un point qui joue
le rôle de virgule, une suite de chiffres (partie fractionnaire), une des deux lettres e ou E, éventuellement
le signe + ou - suivi d'une suite de chiffres (valeur absolue de l'exposant)
La partie entière ou la partie fractionnaire peut être omise (pas les deux); de même le point ou l'exposant
peut être omis (pas les deux).
Une constante flottante est supposée être de type double. Le suffixe F indique qu'elle est de type float. Le
suffixe LF indique qu'elle est de type long double.
Exemple.
.5e7, 5.e6, 5e6, 5000
Les constantes de type caractère
Les constantes de type caractère se note entre apostrophes: 'a' '2' '"'
Le caractère ' se note '\'' et le caractère \ se note '\\'.
On peut également représenter des caractères non imprimables à l'aide de séquences d'échappement.
Voici une liste non exhaustive de caractères non imprimable:
char valeur
\n nouvelle ligne
\t tabulation horizontale
\v tabulation verticale
\b retour d'un caractère en arrière
\r retour chariot
\f saut de page
\a beep
\' apostrophe
\" guillemet
\\ anti-slash
\ddd code ASCII en notation octale
\xddd code ASCII en notation hexadécimale
Les variables
Une variable est un emplacement en mémoire identifié par un identificateur, contenant une valeur d'un
type donné et dont la valeur peut être modifiée durant l'exécution du programme.
Avant d’utiliser une variable on doit la déclarer c à d spécifier son type et lui associer un identificateur.
Les déclarations suivantes :
char Terme ; int nombre ; double nombr_2;
sont des déclarations de variables ainsi Terme est défini comme une variable de type char, nombre
comme une variable de type int et nombr_2 comme une variable de type double.
Noter que toute déclaration de variable se termine par un point-virgule et qu'une déclaration peut se
trouver n'importe où sur une ligne. Plusieurs variables de même type peuvent bien sûr être déclarées en
une seule fois. Le type est alors suivi d'une liste d'identificateurs séparés par des virgules. Ainsi :
short a, b, c;
Déclare trois variables a, b, c de type short.
Langage C
7
Les variables peuvent être initialisées à la déclaration avec des constantes. On utilise pour cela le symbole
« = ». Les exemples suivants sont des initialisations de variables correctes :
int max = 0; float som = 0.5 ;
Nous allons, tout au long de ce chapitre, étudier l'ensemble des types que fournit le langage C ainsi que
l'utilisation des variables.
La notion de type
La mémoire centrale est un ensemble de "positions binaires" nommées bits. Les bits sont regroupés en
octets (8bits), et chaque octet est repéré par son adresse.
L'ordinateur, ne sait représenter et traiter que des informations exprimées sous forme binaire. Toute
information, quelle que soit sa nature, devra être codée sous cette forme. Dans ces conditions, il ne suffit
pas de connaître le contenu d'un emplacement de la mémoire pour être en mesure de lui attribuer une
signification.
Par exemple, si un octet contient la valeur binaire suivant :1000 1101 alors ça peut représenter un
nombre entier positif ou négatif, comme elle peut représenter un nombre réel ou un caractère, ou même
une instruction de programme, ou un graphique …..
Donc il n'est pas possible d'attribuer une signification à une information binaire tant que l'on ne connaît
pas la manière dont elle a été codée et son type.
C manipule deux types de base: les entiers et les nombres flottants.
Les entiers
En C, on dispose de divers types d'entiers qui se distinguent par la place qu'ils occupent en mémoire :
o sur 1 octet, les entiers signés et non signés (char) et (unsigned char).
o sur 2 octets, les entiers signés et non signés (short) et (unsigned short).
o sur 4 octets, les entiers signés et non signés (long) et (unsigned long).
o le type int (unsigned int) est selon les machines synonymes de short (unsigned short) ou de long
(unsigned long)
Le type char
Le type char désigne un entier signé codé sur 1 octet. Il en découle que toutes les opérations autorisées sur
les entiers peuvent être utilisées sur les caractères. Aussi surprenant que cela puisse paraître, on peut
ajouter ou soustraire deux caractères, ajouter ou soustraire un entier à un caractère.
Une utilisation classique de cette souplesse d'utilisation est la conversion d'un caractère c désignant un
chiffre en sa valeur v correspondante:
v = c - '0'
Les types short, long ou int
Le type short représente un entier signé codé sur 2 octets (de -32768 à 32767) et le type unsigned short
représente un entier non signé codé sur 2 octets (de 0 à 65535). Le type long (ou int pour nos machines)
Langage C
5
représente un entier signé codé sur 4 octets (de -2147843648 à 2147843647) et le type unsigned long (ou
unsigned int pour nos machines) représente un entier non signé codé sur 4 octets (de 0 à 4294967295).
Le type réel
Les nombres à virgule flottante (abusivement appelés réels) servent à coder de manière approchée les
nombres réels. Un nombre à virgule flottante est composé d'un signe, d'une mantisse et d'un exposant. On
dispose de trois types de nombres à virgule flottante, les types float, double et long double.
Les floats
Un float est codé sur 4 octets avec 1 bit de signe, 23 bits de mantisse et 8 bits d'exposant (valeurs
comprises entre 3.4 * 10-38 et 3.4 * 1038).
Les doubles
Un double est codé sur 8 octets avec 1 bit de signe, 52 bits de mantisse et 11 bits d'exposant (valeurs
comprises entre 1.7 * 10-308 et 1.7 * 10308).
Les long doubles
Un long double est codé sur 10 octets avec 1 bit de signe, 64 bits de mantisse et 15 bits d'exposant
(valeurs comprises entre 3.4 * 10-4932 3.4 * 104932 ).
Les constantes
Nous avons présenté les divers types de données élémentaires du langage C sans dire comment écrire une
constante de l'un de ces types dans un programme C. Nous allons à présent donner la syntaxe utilisée dans
le langage C pour désigner des constantes littérales.
Les constantes entières
Les constantes entières peuvent s'exprimer
o en notation décimale: 123, -123, etc...
o en notation octale avec un 0 en première position: 0123
o en notation hexadécimale avec les caractères 0x ou 0X en première position : 0x1b 0X2c, 0X1B,
0X2C, etc...
Le type d'une constante entière est le << plus petit >> type dans lequel il peut être représenté :
o notation décimale : int, sinon long, sinon unsigned long
o notation octale ou décimale : int, sinon unsigned int, sinon unsigned long
Des suffixes permettent de changer cette classification :
o U, u : constante de type unsigned
o L, l : constante de type long
Exemple.
Langage C
6
1L, 0x7FFU, 16UL, etc...
Les constantes flottantes
Une constante flottante se présente sous la forme d'une suite de chiffres (partie entière), un point qui joue
le rôle de virgule, une suite de chiffres (partie fractionnaire), une des deux lettres e ou E, éventuellement
le signe + ou - suivi d'une suite de chiffres (valeur absolue de l'exposant)
La partie entière ou la partie fractionnaire peut être omise (pas les deux); de même le point ou l'exposant
peut être omis (pas les deux).
Une constante flottante est supposée être de type double. Le suffixe F indique qu'elle est de type float. Le
suffixe LF indique qu'elle est de type long double.
Exemple.
.5e7, 5.e6, 5e6, 5000
Les constantes de type caractère
Les constantes de type caractère se note entre apostrophes: 'a' '2' '"'
Le caractère ' se note '\'' et le caractère \ se note '\\'.
On peut également représenter des caractères non imprimables à l'aide de séquences d'échappement.
Voici une liste non exhaustive de caractères non imprimable:
char valeur
\n nouvelle ligne
\t tabulation horizontale
\v tabulation verticale
\b retour d'un caractère en arrière
\r retour chariot
\f saut de page
\a beep
\' apostrophe
\" guillemet
\\ anti-slash
\ddd code ASCII en notation octale
\xddd code ASCII en notation hexadécimale
Les variables
Une variable est un emplacement en mémoire identifié par un identificateur, contenant une valeur d'un
type donné et dont la valeur peut être modifiée durant l'exécution du programme.
Avant d’utiliser une variable on doit la déclarer c à d spécifier son type et lui associer un identificateur.
Les déclarations suivantes :
char Terme ; int nombre ; double nombr_2;
sont des déclarations de variables ainsi Terme est défini comme une variable de type char, nombre
comme une variable de type int et nombr_2 comme une variable de type double.
Noter que toute déclaration de variable se termine par un point-virgule et qu'une déclaration peut se
trouver n'importe où sur une ligne. Plusieurs variables de même type peuvent bien sûr être déclarées en
une seule fois. Le type est alors suivi d'une liste d'identificateurs séparés par des virgules. Ainsi :
short a, b, c;
Déclare trois variables a, b, c de type short.
Langage C
7
Les variables peuvent être initialisées à la déclaration avec des constantes. On utilise pour cela le symbole
« = ». Les exemples suivants sont des initialisations de variables correctes :
int max = 0; float som = 0.5 ;
Jeu 28 Nov - 8:07 par arsenepoutsi
» CCNA version 4 français
Dim 31 Mar - 15:15 par kadhouceeee
» Trés important " Livre exercices en langage C ( claude delannoy) "
Jeu 27 Sep - 16:31 par latifa oustouh
» Ulead VideoStudio 11.5.0157.2 Plus + Crack Collection
Jeu 26 Avr - 9:51 par miloduvi
» Langage IDL(Interface Definition Language)
Mar 27 Sep - 13:02 par Abdelkhalek Bakkari
» demande cours PHP
Jeu 2 Juin - 11:23 par elasriahmed
» exemple page web réaliser avec du html et JavaScript
Lun 30 Mai - 4:05 par ouh.rouchan.zakaria
» cours group2_ 2année 2011
Dim 20 Mar - 15:35 par El Maligno Angelo
» Cours : Infrastructures Réseaux 2003 Server
Mar 15 Fév - 6:55 par jettjackson
» cours officiel de CCNA 2
Mar 18 Jan - 13:53 par agares