Поделиться через


Многомерные массивы (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.Выражение вычисляется следующим образом:

  1. Первый индекс, 2умножает, размером 4 by-6 int массив и добавляется к значению указателя prop.Указывает на третий массив 4 by-6 результата prop.

  2. Второй индекс, 1умножает размер элемента, 6 int массив и добавляется к адресу, представленному by prop[2].

  3. каждый элемент массива 6 элементов int значение, так, конечный индекс 3умножает размер, int прежде чем он добавляется к prop[2][1].Результирующий указатель рассматривается четвертый элемент массива 6 элементов.

  4. Косвенный оператор применяется к значению указателя.результат int элемент по этому адресу.

Эти варианты следующие 2 показать примеров, где косвенный оператор не применяется.

ip = prop[2][1];

ipp = prop[2];

В первой из следующих выписок выражение prop[2][1] допустимая ссылка к трехмерным массив prop; она ссылается на массив 6 элементов (объявленному выше).Поскольку значение указателя решает массив, косвенный оператор не применяется.

Аналогично, результат выражения prop[2] во второй выписке ipp = prop[2]; значение указателя адресацию двумерный массив.

См. также

Ссылки

Оператор индекса: []