};
где
В качестве примера ниже приведена программа, в которой двумерный массив sqrs
инициализируется числами от 1 до 10 и квадратами этих чисел.
// Инициализировать двумерный массив, using System;
using System;
class Squares {
static void Main() {
int[,] sqrs = {
{ 1, 1 },
{ 2, 4 },
{ 3, 9 },
{ 4, 16 },
{ 5, 25 },
{ 6, 36 },
{ 7, 49 },
{ 8, 64 },
{ 9, 81 },
{ 10, 100 }
};
int i, j;
for(i=0; i < 10; i++) {
for(j=0; j < 2; j++)
Console.Write(sqrs[i,j] + " ");
Console.WriteLine();
}
}
}
При выполнении этой программы получается следующий результат.
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
10 100
Ступенчатые массивы
В приведенных выше примерах применения двумерного массива, по существу, создавался так называемый
Ступенчатые массивы объявляются с помощью ряда квадратных скобок, в которых указывается их размерность. Например, для объявления двумерного ступенчатого массива служит следующая общая форма:
где jagged
. Память сначала распределяется для его первого измерения автоматически, а затем для второго измерения вручную.
int[][] jagged = new int[3][];
jagged[0] = new int [4];
jagged[1] = new int[3];
jagged[2] = new int[5];
После выполнения этого фрагмента кода массив jagged
выглядит так, как показано ниже.
Теперь нетрудно понять, почему такие массивы называются ступенчатыми! После создания ступенчатого массива доступ к его элементам осуществляется по индексу, указываемому в отдельных квадратных скобках. Например, в следующей строке кода элементу массива jagged
, находящемуся на позиции с координатами (2,1), присваивается значение 10.
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] + " ");