编写在下方的运算符:[]
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],首先计算。 由于添加 expression1 和 expression2 的地址窗体指针表达式;然后 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;
}