Многомерные массивы (c#)
Выражение индекса может также иметь несколько нижние индексы следующим образом:
expression1 [expression2] [expression3]...
Выражения индекса связывают слева направо.Самое левое выражение индекс expression1**[expression2], является первым.Адрес, результаты из добавление expression1 и expression2 формы выражение указателя. then expression3 добавляет к данному выражению указателя для формирования новое выражение указателя и т д до тех пор, пока не будет добавлено последнее выражение индекса.Косвенный оператор (***) применяет после последнего subscripted выражение вычисляется, если конечное значение указателя не будет обеспечиваться тип массива (см. примеры ниже).
Выражения с несколькими подстрочными ссылаются на элементы «многомерных массивов.» Многомерный массив массив, элементы которого массивы.например, первый элемент трехмерного массива массив с 2 измерениями.
Примеры
В следующих примерах с именем массив prop объявляет с 3 элементами каждого из массива 4 by-6 int значения.
int prop[3][4][6];
int i, *ip, (*ipp)[6];
Ссылка на prop массив выглядит следующим образом:
i = prop[0][0][1];
В приведенном выше примере показано, как обратиться ко второму индивидуалу int элемент prop.Массивы хранятся строкой, поэтому последний индекс меняется от самой быстрой; выражение prop[0][0][2] относится к следующему элементу массива (третий) и т д
i = prop[2][1][3];
Это выписка более сложная ссылку к отдельному элементу prop.Выражение вычисляется следующим образом:
Первый индекс, 2умножает, размером 4 by-6 int массив и добавляется к значению указателя prop.Указывает на третий массив 4 by-6 результата prop.
Второй индекс, 1умножает размер элемента, 6 int массив и добавляется к адресу, представленному by prop[2].
каждый элемент массива 6 элементов int значение, так, конечный индекс 3умножает размер, int прежде чем он добавляется к prop[2][1].Результирующий указатель рассматривается четвертый элемент массива 6 элементов.
Косвенный оператор применяется к значению указателя.результат int элемент по этому адресу.
Эти варианты следующие 2 показать примеров, где косвенный оператор не применяется.
ip = prop[2][1];
ipp = prop[2];
В первой из следующих выписок выражение prop[2][1] допустимая ссылка к трехмерным массив prop; она ссылается на массив 6 элементов (объявленному выше).Поскольку значение указателя решает массив, косвенный оператор не применяется.
Аналогично, результат выражения prop[2] во второй выписке ipp = prop[2]; значение указателя адресацию двумерный массив.