Ступенчатый массив представляет собой массив массивов, в котором длина каждого массива может быть разной. Следовательно, ступенчатый массив может быть использован для составления таблицы из строк разной длины.
Ступенчатые массивы объявляются с помощью ряда квадратных скобок, в которых указывается их размерность. Общая форма:
тип[][] имя_массива = new тип[размер][];
где размер обозначает число строк в массиве. Память для самих строк распределяется индивидуально, и поэтому длина строк может быть разной. Например, в приведенном ниже фрагменте кода объявляется ступенчатый массив jagged. Память сначала распределяется для его первого измерения автоматически, а затем для второго измерения вручную.
int[][] jagged = new int[3][];
jagged[0] = new int[4];
jagged[1] = new int[3];
jagged[2] = new int[5];
Доступ к его элементам осуществляется по индексу, указываемому в отдельных квадратных скобках.
jagged[2][1] = 10;
В приведенном ниже примере программы демонстрируется создание двумерного ступенчатого массива.
//Продемстрировать применение ступенчатых массивов.
|
|
using System;
class Jagged
{
static void Main()
{
int[][] jagged = new int[3][];
jagged[0] = new int[4];
jagged[1] = new int[3];
jagged[2] = new int[5];
int i;
for (i = 0; i < 4; i++)
jagged[0][i] = i;
for (i = 0; i < 3; i++)
jagged[1][i] = i;
for (i = 0; i < 5; i++)
jagged[2][i] = i;
for (i = 0; i < 4; i++)
Console.Write(jagged[0][i] + " ");
Console.WriteLine();
for (i = 0; i < 3; i++)
Console.Write(jagged[1][i] + " ");
Console.WriteLine();
for (i = 0; i < 5; i++)
Console.Write(jagged[2][i] + " ");
Console.WriteLine();
}
}
Ступенчатые массивы представляют собой массивы массивов, и поэтому они не обязательно должны состоять из одномерных массивов. Например, в приведенной ниже строке кода создается массив двумерных массивов.
int[][,] jagged = new int[3][,];
В следующей строке кода элементу массива jagged[0] присваивается ссылка намассив размерами 4×2
jagged[0] = new int[4, 2];
А в приведенной ниже строке кода элементу массива jagged[0][1,0] присваивается значение переменной i.
jagged[0][1, 0] = i;