Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Une « déclaration de tableau » nomme le tableau et spécifie le type de ses éléments. Il peut également définir le nombre d’éléments dans le tableau. Une variable avec type de tableau est considérée comme un pointeur vers le type des éléments de tableau.
Syntaxe
declaration :
declaration-specifiers
init-declarator-list
opter;
init-declarator-list :
init-declarator
init-declarator-list
,
init-declarator
init-declarator :
declarator
declarator
=
initializer
declarator :
pointer
optezdirect-declarator
direct-declarator :
direct-declarator
[
constant-expression
opter]
Étant donné qu’elle constant-expression est facultative, la syntaxe comporte deux formes :
Le premier formulaire définit une variable de tableau. L’argument
constant-expressionentre crochets spécifie le nombre d’éléments dans le tableau. Leconstant-expressiontype intégral, le cas échéant, doit avoir une valeur supérieure à zéro. Chaque élément a le type donné partype-specifier, qui peut être n’importe quel type saufvoid. Un élément de tableau ne peut pas être un type de fonction.Le deuxième formulaire déclare une variable qui a été définie ailleurs. Il omet l’argument
constant-expressionentre crochets, mais pas les crochets. Vous ne pouvez utiliser ce formulaire que si vous avez précédemment initialisé le tableau, l’a déclaré en tant que paramètre ou déclaré comme référence à un tableau défini explicitement ailleurs dans le programme.
Dans les deux formulaires, direct-declarator nomme la variable et peut modifier le type de la variable. Les crochets ([ ]) suivants direct-declarator modifient le déclarateur en type de tableau.
Les qualificateurs de type peuvent apparaître dans la déclaration d’un objet de type tableau, mais les qualificateurs s’appliquent aux éléments plutôt qu’au tableau lui-même.
Vous pouvez déclarer un tableau de tableaux (tableau « multidimensionnel ») en suivant le déclarateur de tableau avec une liste d’expressions constantes entre crochets sous cette forme :
type-specifierdeclarator[constant-expression][constant-expression]...
Chaque constant-expression crochet définit le nombre d’éléments d’une dimension donnée : les tableaux à deux dimensions ont deux expressions entre crochets, les tableaux à trois dimensions ont trois, et ainsi de suite. Vous pouvez omettre la première expression constante si vous avez initialisé le tableau, l’a déclaré en tant que paramètre ou déclaré comme référence à un tableau défini explicitement ailleurs dans le programme.
Vous pouvez définir des tableaux de pointeurs vers différents types d’objets à l’aide de déclarateurs complexes, comme décrit dans l’interprétation des déclarateurs plus complexes.
Les tableaux sont stockés par ligne. Par exemple, le tableau suivant se compose de deux lignes avec trois colonnes chacune :
char A[2][3];
Les trois colonnes de la première ligne sont stockées en premier, suivies des trois colonnes de la deuxième ligne. Cela signifie que le dernier indice varie le plus rapidement.
Pour faire référence à un élément individuel d’un tableau, utilisez une expression d’indice, comme décrit dans Opérateurs Postfix.
Exemples
Ces exemples illustrent les déclarations de tableau :
float matrix[10][15];
Le tableau à deux dimensions nommé matrix a 150 éléments, chacun ayant float un type.
struct {
float x, y;
} complex[100];
Cet exemple est une déclaration d’un tableau de structures. Ce tableau comporte 100 éléments ; chaque élément est une structure contenant deux membres.
extern char *name[];
Cette instruction déclare le type et le nom d’un tableau de pointeurs vers char. La définition réelle de name se produit ailleurs.
Spécifique à Microsoft
Le type d’entier requis pour contenir la taille maximale d’un tableau est la taille de size_t.
FIN de la section spécifique à Microsoft