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 o typie tablicowym jest uważana za wskaźnik do typu elementów tablicy.

Składnia

  • declaration:
    declaration-specifiers init-declarator-list opt**;**

  • init-declarator-list:
    init-declarator

    init-declarator-list**,** init-declarator

  • init-declarator:
    declarator

    declarator = initializer

  • declarator:
    pointer optdirect-declarator

  • direct-declarator:
    direct-declarator [ constant-expression opt**]**

Ponieważ constant-expression jest opcjonalne, składnia przyjmuje dwie postacie:

  • Pierwsza postać definiuje zmienną tablicową.Argument constant-expression w nawiasach określa liczbę elementów w tablicy.Argument constant-expression, jeśli jest obecny, musi być typem całkowitym, o wartości większej od zera.Każdy element ma typ podany przez type-specifier, który może być dowolnym typem, z wyjątkiem void.Element tablicy nie może mieć typu funkcji.

  • Druga postać składni deklaruje zmienną, która została zdefiniowana w innym miejscu.Pomija argument constant-expression w nawiasach, ale nie nawiasy.Możesz użyć składni w tej postaci tylko wtedy, gdy wcześniej zainicjowano tablicę, zadeklarowano ją jako parametr lub zadeklarowano ją jako odwołanie do tablicy zdefiniowanej w innym miejscu w programie w sposób jawny.

W obu formach, direct-declarator nazywa zmienną i może zmodyfikować typ zmiennej.Nawiasy ([ ]), następujące po direct-declarator, modyfikują deklarator na typ tablicowy.

Kwalifikatory typu mogą pojawić się w deklaracji obiektu o typie tablicowym, ale kwalifikatory stosuje się raczej do elementów, niż do samej tablicy.

Możesz zadeklarować tablicę tablic (tablicę "wielowymiarową") za pomocą listy stałych wrażeń w nawiasach, następującej po deklaratorze tablicy, w następującej postaci:

type-specifier declarator [constant-expression] [constant-expression] ...

Każde constant-expression w nawiasach definiuje liczbę elementów w danym wymiarze: tablica dwuwymiarowa posiada dwa wyrażenia w nawiasach, tablica trójwymiarowa – trzy, itd.Możesz pominąć pierwsze wyrażenie stałe, jeśli wcześniej zainicjowano tablicę, zadeklarowano ją jako parametr lub zadeklarowano ją jako odwołanie do tablicy zdefiniowanej w innym miejscu w programie w sposób jawny.

Przy użyciu złożonych deklaratorów możesz zdefiniować tablice wskaźników do różnych typów obiektów, jak opisano w Interpretowanie bardziej złożonych deklaratorów.

Tablice są przechowywane wierszami.Na przykład, następująca tablica składa się z dwóch wierszy, każdy o trzech kolumnach:

char A[2][3];

Najpierw przechowywane są trzy kolumny pierwszego wiersza, a po nich trzy kolumny drugiego wiersza.Oznacza to, że ostatni indeks dolny zmienia się najszybciej.

Aby odwołać się do pojedynczego elementu tablicy, użyj wyrażenia indeksu dolnego, jak opisano w Operatory przyrostkowe.

Przykłady

W poniższych przykładach pokazano deklarację tablic:

float matrix[10][15];

Dwuwymiarowa tablica o nazwie matrix ma 150 elementów, każdy o typie float.

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

To jest deklaracja tablicy struktur.Ta tablica ma 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 do typu char.Rzeczywiste definicja name występuje w innym miejscu.

Specyficzne dla firmy Microsoft

Typ całkowity wymagany do przechowywania maksymalnego rozmiaru tablicy ma rozmiar size_t.size_t zdefiniowany w pliku nagłówkowym STDDEF.H jest wartością typu unsigned int i ma zakres od 0x00000000 do 0x7CFFFFFF.

KONIEC informacji specyficznych dla firmy Microsoft

Zobacz też

Koncepcje

Deklaratory i deklaracje zmiennych