Udostępnij za pośrednictwem


Deklaracje tablicy

"deklaracja tablicy" nazywa tablicę i określa typ jej elementów. Może również definiować liczbę elementów w tablicy. Zmienna z typem tablicy jest traktowana jako wskaźnik typu elementów tablicy.

Składnia

declaration:
declaration-specifiersinit-declarator-listZdecydować ;

init-declarator-list:
init-declarator
init-declarator-list , init-declarator

init-declarator:
declarator
declarator = initializer

declarator:
pointerZdecydować direct-declarator

direct-declarator:
direct-declarator [ constant-expressionZdecydować ]

Ponieważ constant-expression jest opcjonalna, składnia ma dwie formy:

  • Pierwszy formularz definiuje zmienną tablicową. constant-expression Argument w nawiasach określa liczbę elementów w tablicy. Wartość constant-expression, jeśli istnieje, musi mieć typ całkowity i wartość większą niż zero. Każdy element ma typ podany przez type-specifierelement , który może być dowolnym typem z wyjątkiem void. Element tablicy nie może być typem funkcji.

  • Drugi formularz deklaruje zmienną zdefiniowaną gdzie indziej. constant-expression Pomija argument w nawiasach kwadratowych, ale nie nawiasy kwadratowe. Tego formularza można użyć tylko wtedy, gdy wcześniej zainicjowano tablicę, zadeklarowaliśmy ją jako parametr lub zadeklarowaliśmy jako odwołanie do tablicy, która jest jawnie zdefiniowana w innym miejscu w programie.

W obu formularzach direct-declarator nazwij zmienną i może modyfikować typ zmiennej. Nawiasy kwadratowe ([ ]) po direct-declarator zmodyfikowaniu deklaratora do typu tablicy.

Kwalifikatory typów mogą występować w deklaracji obiektu typu tablicy, ale kwalifikatory mają zastosowanie do elementów, a nie samej tablicy.

Tablicę tablic (tablicę wielowymiarową) można zadeklarować, postępując zgodnie z deklaratorem tablicy z listą wyrażeń stałych w nawiasach w tym formularzu:

type-specifierdeclarator [ constant-expression ] [ constant-expression ] ...

Każdy constant-expression w nawiasach definiuje liczbę elementów w danym wymiarze: tablice dwuwymiarowe mają dwa wyrażenia w nawiasach, tablice trójwymiarowe mają trzy i tak dalej. Możesz pominąć pierwsze wyrażenie stałe, jeśli zainicjowano tablicę, zadeklarował ją jako parametr lub zadeklarował jako odwołanie do tablicy jawnie zdefiniowanej w innym miejscu w programie.

Tablice wskaźników można definiować na różne typy obiektów przy użyciu deklaratorów złożonych, zgodnie z opisem w temacie Interpretowanie bardziej złożonych deklaratorów.

Tablice są przechowywane według wierszy. Na przykład następująca tablica składa się z dwóch wierszy z trzema kolumnami:

char A[2][3];

Trzy kolumny pierwszego wiersza są najpierw przechowywane, a następnie trzy kolumny drugiego wiersza. Oznacza to, że ostatni indeks dolny różni się najbardziej szybko.

Aby odwołać się do pojedynczego elementu tablicy, użyj wyrażenia indeksu dolnego zgodnie z opisem w temacie Operatory postfiksów.

Przykłady

Te przykłady ilustrują deklaracje tablic:

float matrix[10][15];

Tablica dwuwymiarowa o nazwie matrix ma 150 elementów, z których każdy ma float typ.

struct {
    float x, y;
} complex[100];

Ten przykład jest deklaracją tablicy struktur. Ta tablica zawiera 100 elementów; każdy element jest strukturą zawierającą dwa elementy członkowskie.

extern char *name[];

Ta instrukcja deklaruje typ i nazwę tablicy wskaźników na char. Rzeczywista definicja name występuje gdzie indziej.

Specyficzne dla firmy Microsoft

Typ liczby całkowitej wymaganej do przechowywania maksymalnego rozmiaru tablicy to rozmiar size_t.

END Microsoft Specific

Zobacz też

Deklaratory i deklaracje zmiennych