Sous-sections
Des objets plus complexes peuvent être formés à l'aide des constructeurs
homogènes :
- les constructeurs de pointeurs,
- les constructeurs de vecteur,
- les constructeurs de fonction.
Symboles associés aux constructeurs homogènes
Symbole |
Objet construit |
* |
pointeur |
[] |
vecteur |
() |
fonction |
char lignes[100];
int *p_entier;
double fonc();
Les déclarations précédentes permettent de définir respectivement
:
- un vecteur de 100 caractères,
- un pointeur d'entier,
- une fonction retournant un réel double précision.
Ces constructeurs peuvent se combiner entre eux, permettant ainsi
de définir des objets encore plus complexes.
Exemple
char *chaines[100];
int mat[100][40];
char **argv;
Le constructeur homogène * est moins prioritaire que les
deux autres. De ce fait, les déclarations précédentes permettent de
définir respectivement :
- un vecteur de 100 pointeurs de caractère,
- un vecteur de 100 éléments, chaque élément étant un vecteur
de 40 entiers,
- un pointeur de pointeur de caractère.
L'utilisation de parenthèses permet de modifier la priorité et donc
l'ordre d'évaluation.
Exemple
int (*tab)[10];
char (*f)();
char *(*g)();
float *(*tabf[20])();
Cet exemple permet de définir respectivement :
- un pointeur de vecteur de 10 entiers,
- un pointeur de fonction retournant un caractère,
- un pointeur de fonction retournant un pointeur de caractère,
- un vecteur de 20 pointeurs de fonction retournant
un pointeur de réel simple précision.
Pr. Marc BUFFAT
buffat@ufrmeca.univ-lyon1.fr
2004-12-01