Udostępnij za pośrednictwem


Operator indeksu dolnego:

postfix-expression [ expression ]

Uwagi

Wyrażenie przyrostek, (który może być również wyrażenia podstawowego) a po nim operator indeksu dolnego, [], określa indeksowanie tablicy.

Aby uzyskać więcej informacji dotyczących tablic zarządzanych, zobacz Tablica (Visual C++) .

Na ogół wartość reprezentowana przez przyrostek wyrażenia jest wartością wskaźnika, na przykład identyfikatorem tablicy, a wyrażenie jest wartością całkowitą (w tym typy wyliczane).Jednak wszystko, co jest wymagane syntaktycznie jest jednym z wyrażeń typu wskaźnika a reszta może być typem całkowitym.Tym samym wartością typu całkowitego może być na pozycji i wartości wskaźnika przyrostek wyrażenie określony w nawiasach w wyrażenie lub na pozycji indeksu dolnego.Rozważ następujący fragment kodu:

   int nArray[5] = { 0, 1, 2, 3, 4 };
   cout << nArray[2] << endl;            // prints "2"
   cout << 2[nArray] << endl;            // prints "2"

W poprzednim przykładzie wyrażenie nArray[2] jest identyczne z 2[nArray].Powodem jest to, że wynik wyrażenia indeksu e1**[e2]** wyraża się przez:

*( (e2) + (e1) )

Adres uzyskany przez wyrażenie nie jest bajtami e2 z adresu e1.Przeciwnie, adres jest skalowany na plon następnego obiektu w tablicy e2.Na przykład:

double aDbl[2];

Adresy aDb[0] i aDb[1] są od siebie oddalone o 8 bajtów — rozmiar obiektu typu podwójny.To skalowanie zgodnie z typem obiektu odbywa się automatycznie na podstawie języka C++ i jest zdefiniowane w Dodatkowe Operatory, gdzie jest omawiane dodawanie i odejmowanie operandów typu wskaźnika.

Wyrażenie indeksu może mieć wiele podwyrażeń, w następujący sposób:

expression1 expression2 expression3...

Indeks dolny wyrażeń należy skojarzyć od lewej do prawej.Po lewej stronie wyrażenie indeksu expression1expression2**[], jest obliczane jako pierwsze.Adres, który jest wynikiem dodawania expression 1 i expression2 stanowi wyrażenie wskaźnika; następnie expression3 jest dodawane do tego wyrażenia wskaźnika do utworzenia nowego wyrażenia wskaźnika, i tak dalej, aż gdy ostatnie wyrażenie indeksu zostanie dodane.Operator pośredni (***) jest stosowany po ostatnim oszacowaniu wyrażenia, chyba że wartość adresu ostatecznego wskaźnika jest typu tablicowego.

Wyrażenia zawierające wiele dolnych indeksów odnoszą się do elementów tablic wielowymiarowych.Tablica wielowymiarowa jest tablicą, której elementy są tablicami.Na przykład pierwszy element tablicy trójwymiarowej jest tablicą z dwoma wymiarami.W poniższym przykładzie deklarowana i inicjowana jest prosta dwuwymiarowa tablica znaków:

// expre_Subscript_Operator.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;
#define MAX_ROWS 2
#define MAX_COLS 2

int main() {
   char c[ MAX_ROWS ][ MAX_COLS ] = { { 'a', 'b' }, { 'c', 'd' } };
   for ( int i = 0; i < MAX_ROWS; i++ )
      for ( int j = 0; j < MAX_COLS; j++ )
         cout << c[ i ][ j ] << endl;
}

Zobacz też

Informacje

Wyrażenia przyrostków

Operatory języka C++

Operatory, pierwszeństwo i kojarzenie języka C++

Tablice (C++)

Koncepcje

Tablice jednowymiarowe

Tablice wielowymiarowe (C)