Une variable permet de stocker une valeur. Le type de valeurs
stockées dépend du type de la variable. L'opérateur
=
permet d'affecter une valeur à une variable. Toutes
les variables doivent être définies (ou au moins déclarées) avant d'être
utilisées.
On peut initialiser une variable lors de sa définition en lui affectant directement une valeur. Pour un même type, on peut réunir plusieurs définitions de variables sur une même instruction.
Dans l'exemple suivant, on définit tout d'abord deux variables VarPrem
et Houla
de type int
. Houla
est initialisée lors de sa
déclaration. On définit une troisième variable de type double
et enfin
on lui affecte le résultat de l'addition de Houla
et de 25.
int VarPrem, Houla = 18;
double TroisiemeVariable;
TroisiemeVariable = Houla + 25;
Nous décrivons ici les types de base les plus usités. Nous ne rentrerons pas
dans le détail de l'utilisation des mots-clé comme static
, auto
,
const
ou register
.
Les caractères peuvent être de deux types:
char
ou unsigned char
.
Ce type de variables occupe en général un octet en mémoire et stocke un caractère. La valeur stockée est le code du caractère dans le codage de la machine utilisée (en général le code ASCII).
Ces valeurs vont de -128 à 127 dans le cas des char
et de 0 à 255 dans
le cas des unsigned char
.
/* une première variable de type char, suivie d'une seconde
initialisée avec le caractère de code ASCII 255, enfin
une dernière initialisée par le caractère de fin de ligne */
char PremierChar;
unsigned char SecondChar = '\
xFF';
char DernierChar = '\
n';
Les types de base permettant de stocker des entiers sont short
,
int
et long
. Chacun de ces types peut être spécifié comme étant
sans signe en le précédant du mot-clé unsigned
: unsigned int
,
unsigned long
...
.
.
Le tableau 3.1 spécifie les caractéristiques de ces types (leur occupation en mémoire ou taille et leurs valeurs limites sont données à titre indicatif et correspondent aux stations SUN).
On s'aperçoit que, sur SUN, les long
et les int
sont identiques.
Ceci arrive souvent selon l'architecture informatique de la machine. La seule
règle imposée par la norme ANSI est la suivante : un long
est de taille
supérieure ou égale à celle d'un int
qui est lui-même de taille
supérieure ou égale à celle d'un short
.
short a = 12, b = 19;
unsigned long d = 3123456789ul;
Les deux types permettant de manipuler des valeurs «réelles» (au sens
mathématique) sont float
et double
. La précision (en nombre de
décimales stockées) d'un double
est à priori le double de celle d'un
float
. Le tableau 3.2 donne les caractéristiques de ces deux types
sur une station SUN.