Основы C#. Урок 6. Массивы в C#
Массивы в C# несколько отличаются от других C-подобных
языков. Начнем сразу с примеров. Пример первый: ...
int[] k; //k - массив
k=new int [3]; //Определяем массив из 3-х целых
k[0]=-5; k[1]=4; k[2]=55; //Задаем элементы массива
//Выводим третий элемент массива
Console.WriteLine(k[2].ToString());
...
Смысл приведенного фрагмента ясен из комментариев. Обратите
внимание на некоторые особенности. Во-первых, массив
определяется именно как int[] k;
а не как один из следующих вариантов: int k[]; //Неверно! int k[3]; //Неверно! int[3] k; //Неверно!
Во-вторых, так как массив представляет из себя ссылочный
объект, то для создания массива необходима строка k=new int [3];
Именно в ней мы и определяем размер массива. Хотя, вообще
говоря, возможны конструкции вида int[] k = new int [3];
Элементы массива можно задавать сразу при объявлении. Вот
пример: int[] k = {-5, 4, 55};
Разумеется, приведенные конструкции применимы не только к
типу int и не только к массиву размера 3.
В C#, как и в C/C++, нумерация элементов массива идет с
нуля. Таким образом в нашем примере начальный элемент массива
- это k[0], а последний - k[2]. Элемента k[3], разумеется,
нет.
Теперь переходим к многомерным массивам. Вот так задается
двумерный массив: int[,] k = new int [2,3];
Обратите внимение, что пара квадратных скобок только одна.
Естественно, что в нашем примере у массива 6 (=2*3) элементов
(k[0,0] - первый, k[1,2] - последний).
Аналогично мы можем задавать многомерные массивы. Вот
пример трехмерного массива: int[,,] k = new int [10,10,10];
А вот так можно сразу инициализировать многомерные
массивы: int[,] k = {{2,-2},{3,-22},{0,4}};
Приведенные выше примеры многомерных массивов называются
прямоугольными. Если их представить в виде таблицы (в
двумерном случае), то массив будет представлять из себя
прямоугольник.
Наряду с прямоугольными массивами существуют так называемые
ступенчатые. Вот пример: //Объявляем 2-мерный ступенчатый массив
int[][] k = new int [2][];
//Объявляем 0-й элемент нашего ступенчатого массива
//Это опять массив и в нем 3 элемента
k[0]=new int[3];
//Объявляем 1-й элемент нашего ступенчатого массива
//Это опять массив и в нем 4 элемента
k[1]=new int[4];
k[1][3]=22; //записываем 22 в последний элемент массива
...
Обратите внимание, что у ступенчатых массивов мы задаем
несколько пар квадратных скобок (столько, сколько размерность
у массива). И точно так же мы что-нибудь делаем с элементами
массива - записываем, читаем и т. п.
Самая важная и интересная возможность у ступенчатых
массивов - это их "непрямоугольность". Так, в приведенном выше
примере в первой "строке" массива k три целых числа, а во
второй - четыре. Часто это оказывается очень к месту. |