Partager via


Déclarations de tableau

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-expression entre crochets spécifie le nombre d’éléments dans le tableau. Le constant-expressiontype intégral, le cas échéant, doit avoir une valeur supérieure à zéro. Chaque élément a le type donné par type-specifier, qui peut être n’importe quel type sauf void. 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-expression entre 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-specifier declarator [ 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

Voir aussi

Déclarateurs et déclarations de variables