Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wyrażenie indeksu dolnego może mieć wiele indeksów dolnych, jak pokazano poniżej:
expression1 [ expression2 ] [ expression3 ] /*...*/ ;
Wyrażenia indeksu dolnego są skojarzone od lewej do prawej. Wyrażenie indeksu dolnego po lewej stronie, expression1[ expression2 ], jest oceniane jako pierwsze. Adres, który wynika z dodawania expression1 i expression2 tworzenia wyrażenia wskaźnika, a następnie expression3 jest dodawany do tego wyrażenia wskaźnika w celu utworzenia nowego wyrażenia wskaźnika itd. do czasu dodania ostatniego wyrażenia indeksu dolnego. Operator pośredni (*) jest stosowany po obliczeniu ostatniego wyrażenia w indeksie dolnym, chyba że końcowa wartość wskaźnika adresuje typ tablicy.
Wyrażenia z wieloma indeksami dolnymi odnoszą się do elementów "tablic wielowymiarowych". Tablica wielowymiarowa to tablica, której elementy są tablicami. Na przykład, pierwszy element tablicy trójwymiarowej jest tablicą z dwoma wymiarami.
Przykłady
W poniższych przykładach tablica o nazwie prop została zadeklarowana za pomocą trzech elementów, z których każdy jest tablicą o wymiarach 4 na 6, zawierającą wartości typu int.
int prop[3][4][6];
int i, *ip, (*ipp)[6];
Odwołanie do tablicy prop wygląda następująco:
i = prop[0][0][1];
W przykładzie pokazano, jak odwoływać się do drugiego pojedynczego int elementu klasy prop. Tablice są przechowywane wierszami, zatem ostatni indeks dolny zmienia się najszybciej; wyrażenie prop[0][0][2] odwołuje się do następnego (trzeciego) elementu tablicy, i tak dalej.
i = prop[2][1][3];
Ta instrukcja jest bardziej złożonym odwołaniem do pojedynczego elementu tablicy prop. Wyrażenie jest oceniane w następujący sposób:
Pierwszy indeks dolny
2jest mnożony przez rozmiar tablicy typuinto wymiarach 4 na 6 i dodawany do wartości wskaźnika tablicyprop. Wynik wskazuje na trzecią tablicępropo wymiarach 4 na 6.Drugi indeks dolny
1jest mnożony przez rozmiar 6-elementowej tablicy typuinti dodawany do adresu reprezentowanego przezprop[2].Każdy element tablicy 6-element jest wartością
int, więc końcowy indeks3dolny , jest pomnożony przez rozmiar obiektuintprzed dodaniu doprop[2][1]elementu . Wskaźnik wynikowy adresuje czwarty element 6-elementowej tablicy.Operator pośredni jest stosowany do wartości wskaźnika. Wynik jest elementem typu
intpod tym adresem.
W tych dwóch następnych przykładach pokazano przypadki, w których operator pośredni nie jest stosowany.
ip = prop[2][1];
ipp = prop[2];
W pierwszej z tych instrukcji wyrażenie prop[2][1] jest prawidłowym odwołaniem do tablicy proptrójwymiarowej ; odnosi się do tablicy 6-elementowej (zadeklarowanej wcześniej). Ponieważ wartość wskaźnika adresuje tablicę, operator pośredni nie jest stosowany.
Podobnie, wynik wyrażenia prop[2] w drugiej instrukcji ipp = prop[2]; jest wartością wskaźnika adresującą tablicę dwuwymiarową.