int t1[5] = { 10, 20, 5, 0, 3 } ;
// place les valeurs 10, 20, 5, 0 et 3 dans les cinq éléments de t1
int t2 [5] = { 10, 20 } ;
// place les valeurs 10 et 20 dans les deux premiers éléments de t2
Les deux déclarations suivantes sont équivalentes :
int tab [3] [4] = { { 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9,10,11,12 } }
int tab [3] [4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 } ;
Les initialiseurs fournis pour l’initialisation des éléments d’un tableau doivent être des
expressions constantes pour les tableaux de classe statique, et des expressions
quelconques (d’un type compatible par affectation) pour les tableaux de classe
automatique.
Les pointeurs, les opérateurs & et *
Une variable pointeur est destinée à manipuler des adresses d’informations d’un type
donné. On la déclare comme dans ces exemples :
int * adi ; // adi contiendra des adresses d’entiers de type int
float * adf ; // adf contiendra des adresses de flottants de type float
L’opérateur & permet d’obtenir l’adresse d’une variable :
int n ;
.....
adi = &n ; // adi contient l’adresse de n
L’opérateur * permet d’obtenir l’information d’adresse donnée. Ainsi *adi désigne la
lvalue d’adresse adi, c’est-à-dire ici n :
int p = *adi ; // place dans p la valeur de n
*adi = 40 ; // place la valeur 40 à l’adresse contenue dans adi,
// donc ici dans n
Il existe un type « pointeur générique », c’est-à-dire pour lequel on ne précise pas la
nature des informations pointées, à savoir le type void *.
Opérations sur les pointeurs
On peut incrémenter ou décrémenter des pointeurs d’une valeur donnée. Par exemple :
adi++ ; // modifie adi de manière qu’elle pointe
// sur l’entier suivant n
adi -= 10 ; // modifie adi de manière qu’elle pointe
// 10 entiers avant
L’unité d’incrémentation ou de décrémentation des pointeurs génériques est l’octet.
On peut comparer ou soustraire des pointeurs de même type (pointant sur des éléments
73
// place les valeurs 10, 20, 5, 0 et 3 dans les cinq éléments de t1
int t2 [5] = { 10, 20 } ;
// place les valeurs 10 et 20 dans les deux premiers éléments de t2
Les deux déclarations suivantes sont équivalentes :
int tab [3] [4] = { { 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9,10,11,12 } }
int tab [3] [4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 } ;
Les initialiseurs fournis pour l’initialisation des éléments d’un tableau doivent être des
expressions constantes pour les tableaux de classe statique, et des expressions
quelconques (d’un type compatible par affectation) pour les tableaux de classe
automatique.
Les pointeurs, les opérateurs & et *
Une variable pointeur est destinée à manipuler des adresses d’informations d’un type
donné. On la déclare comme dans ces exemples :
int * adi ; // adi contiendra des adresses d’entiers de type int
float * adf ; // adf contiendra des adresses de flottants de type float
L’opérateur & permet d’obtenir l’adresse d’une variable :
int n ;
.....
adi = &n ; // adi contient l’adresse de n
L’opérateur * permet d’obtenir l’information d’adresse donnée. Ainsi *adi désigne la
lvalue d’adresse adi, c’est-à-dire ici n :
int p = *adi ; // place dans p la valeur de n
*adi = 40 ; // place la valeur 40 à l’adresse contenue dans adi,
// donc ici dans n
Il existe un type « pointeur générique », c’est-à-dire pour lequel on ne précise pas la
nature des informations pointées, à savoir le type void *.
Opérations sur les pointeurs
On peut incrémenter ou décrémenter des pointeurs d’une valeur donnée. Par exemple :
adi++ ; // modifie adi de manière qu’elle pointe
// sur l’entier suivant n
adi -= 10 ; // modifie adi de manière qu’elle pointe
// 10 entiers avant
L’unité d’incrémentation ou de décrémentation des pointeurs génériques est l’octet.
On peut comparer ou soustraire des pointeurs de même type (pointant sur des éléments
73
