Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лекция 3.2


 

Ссылочные типы:

Массивы в C#. Оператор foreach.

Массивом называют упорядоченную совокупность элементов одного типа. Число индексов характеризует размерность массива. При объявлении массива границы задаются выражениями. Если все границы заданы константными выражениями, то число элементов массива известно в момент его объявления и ему может быть выделена память еще на этапе трансляции. Такие массивы называются статическими. Если же выражения, задающие границы, зависят от переменных, то такие массивы называются динамическими, поскольку память им может быть отведена только динамически в процессе выполнения программы, когда становятся известными значения соответствующих переменных.

Массивы в языке C# относятся к ссылочным типам, и память им отводится динамически в "куче". В языке C#, соблюдая преемственность, сохранены одномерные массивы и массивы массивов. В дополнение к ним в язык добавлены многомерные ступенчатые массивы.

Определение одномерных массивов:

int[] k; //k – одномерный массив

k=new int [3]; //Определяем массив из 3-х целых

k[0]=-5; k[1]=4; k[2]=55; //Задаем элементы массива

 

Элементы массива можно задавать сразу при объявлении:

int[] k = {-5, 4, 55};

public void TestDynAr() {

Console.WriteLine("Введите число элементов массива ");

int size = Int32.Parse(Console.ReadLine());

int[] A1 = new int[size];

}

 

Определение многомерных массивов:

 

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 в последний элемент массива

 

Обратите внимание, что у ступенчатых массивов мы задаем несколько пар квадратных скобок (столько, сколько размерность у массива).

 

Таблица 1.2 – Создание ступенчатых массивов



Объявление и инициализация значениями Объявление и инициализация нулевыми значениями Объявление и инициализация нулевыми значениями
int[][] jagger = new int[3][] { new int[] {5,7,9,11}, new int[] {2,8}, new int[] {6,12,4} }; int[][] jagger1 = new int[3][] { new int[4], new int[2], new int[3] }; int[][] jagger2 = { new int[4], new int[2], new int[3] };

 

Массив jagger имеет всего два уровня. Можно считать, что у него три элемента, каждый из которых является массивом. Для каждого такого массива необходимо вызвать конструктор new, чтобы создать внутренний массив. В первом случае элементы внутренних массивов получают значения, будучи явно инициализированы константными массивами. Во втором и третьем случае элементы внутренних массивов получают нулевые значения.

Еще одно важное замечание - динамические массивы возможны и здесь. В общем случае, границы на любом уровне могут быть выражениями, зависящими от переменных. Более того, допустимо, чтобы массивы на нижнем уровне были многомерными.

<== предыдущая лекция | следующая лекция ==>
Преобразования типов | Модуль №1

Дата добавления: 2014-01-03; Просмотров: 280; Нарушение авторских прав?


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



ПОИСК ПО САЙТУ:


Рекомендуемые страницы:

Читайте также:
studopedia.su - Студопедия (2013 - 2020) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление
Генерация страницы за: 0.002 сек.