编写在下方的运算符:[]

postfix-expression [ expression ]

备注

也可以是主表达式) 编写在下方的运算符 (后跟后缀表达式, [],指定数组索引。

有关托管数组的信息,请参见 数组 (Visual C++)

通常, 后缀表达式 表示的值是指针值,如数组标识符,因此, 表达式 是一个整数值 (包括枚举类型)。 但是,语法上的需的任何是一个表达式是指针类型,另一个整型。 因此整数值可以在 后缀表达式 位置,并且指针值可以在 表达式 或下标位置的括号。 考虑以下代码片断:

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

在前面的示例中,表达式 nArray[2] 与 2[nArray]相同。 这是为下标表达式 e1**[***e2 *] 的结果:

* (e2)*+ *(e1)

该表达式会的地址不 e2 从地址 e1 的字节。 相反,该地址缩放为数组 e2 的下一个对象。 例如:

double aDbl[2];

aDb[0] 和 aDb[1] 地址划分为 8 字节 —类型 二进制文件对象的大小。 根据目标类型的此缩放由 C++ 语言。指针类型的操作数加减运算讨论的 附加运算符 自动完成和定义。

下标表达式还可以有多个下标,如下所示:

*expression1 *[expression2][expression3]

下标表达式从左至右联合。 最左侧的下标表达式, expression1**[expression2],首先计算。 由于添加 expression1expression2 的地址窗体指针表达式;然后 expression3 添加到此指针表达式构成一个新的指针表达式,依此类推,直到最后一个下标表达式添加了。 间接寻址运算符 (***) 为应用的,在最后一 subscripted 计算表达式后,最终,除非指针值解析数组类型。

具有多个下标的表达式引用多维数组的元素。 多维数组是元素为数组的数组。 例如,一个三维数组的第一个元素与两个维度的数组。 下面的示例声明并初始化字符一个简单的二维数组:

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

请参见

参考

后缀表达式

C++运算符

运算符优先级和结合性

数组(C++)

概念

一维数组

多维数组(c)