Sdílet prostřednictvím


Dolní operátor:]

postfix-expression [ expression ]

Poznámky

Příponové výrazu (který může být také primární výraz) následovaný dolní operátor [], určuje indexování pole.

Informace o spravovaných matice, viz matice (Visual C++).

Obvykle hodnoty představované Příponové výraz je hodnota ukazatele, jako je například identifikátor pole a výraz je integrální hodnota (včetně Výčtové typy).Však stačí syntakticky je jeden výrazy typu ukazatele a ostatní být nedílnou typu.Proto může být integrální hodnota v Příponové výraz pozici a ukazatel hodnota může být v závorkách v výraz nebo dolní pozice.Zvažte následující fragment kódu:

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

V předchozím příkladu výraz nArray[2] je shodné s 2[nArray].Důvodem je, že v důsledku výraz dolního indexu e1e2**[]** je dán vzorcem:  

*( (e2) + (e1) )

Adresa nevyplacené výrazu není e2 bajtů z adresy e1.Spíše velikost přinést další objekt v poli Adresa e2.Příklad:

double aDbl[2];

Adresy aDb[0] a aDb[1] 8 bajtů jsou od sebe – velikost objektu typu dvojité.Měřítko objektu typu jazyka C++ provádí automaticky a je definována v Operátory doplňkové látky kde je popsána sčítání a odčítání operandy typu ukazatel.

Výraz dolního indexu můžete mít také více dolních takto:

expression1 expression2 expression3...

Dolní výrazy spojení zleva doprava.První výraz dolního indexu Výraz1Výraz2**[], je nejprve vyhodnocen.Adresa, která je výsledkem přidání Výraz1 a Výraz2 tvoří ukazatel výrazu; potom expression3 doplňuje se tento ukazatel výraz tvoří nový výraz ukazatel atd., dokud poslední výraz dolního indexu byl přidán.Operátor nepřímé odkazování (***) je použita po nich poslední výrazu je vyhodnocena, pokud je hodnota ukazatele konečné adresy typu pole.

Výrazy s více dolních naleznete prvky vícedimenzionální pole.Multidimenzionální pole je matice, jejíž prvky jsou matice.Například je první prvek trojrozměrné pole se dvěma dimenzemi.Následující příklad prohlašuje a inicializuje jednoduché dvourozměrné pole znaků:

// 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;
}

Viz také

Referenční dokumentace

Příponové operátory výrazy

Operátory C++

Přednost a asociativita operátorů

Matice (C++)

Koncepty

Jednorozměrné pole.

Multidimenzionální pole (C)