Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirovanie ответы.docx
Скачиваний:
10
Добавлен:
26.04.2019
Размер:
260.09 Кб
Скачать

Ступенчатые массивы

В языке С# можно создавать двумерный массив специального типа, который называется ступенчатым массивом.

Ступенчатый или невыровненный массив – это массив одномерных массивов, каждый из которых представляет собой строку. Количество элементов в разных строках может различаться. В памяти ступенчатый массив также хранится иначе, чем прямоугольный: в виде нескольких внутренних массивов, каждый из которых имеет свой размер. Для хранения ссылок на каждый из внутренних массивов выделяется отдельная область памяти.

Объявления и инициализация

При объявлении ступенчатого массива каждая его размерность обозначается парой квадратных скобок:

тип[ ] [ ] имя;

Общая форма записи объявления ступенчатого массива с выделением памяти под ссылки на три строки, содержащих значения целого типа:

int[][] b = new int [3][];

Не смотря на то, что такое объявление указывает количество строк в массиве, память для строк массива еще не выделена. Строки ступенчатого массива в памяти размещаются индивидуально, поэтому под каждый из одномерных массивов, составляющих ступенчатый массив, память требуется выделять явным образом, например:

Выделение памяти под 0-ю строку (5 элементов):

b[0]=new int [5];

Выделение памяти под 1-ю строку (3 элемента):

b[1] =new int [3];

Выделение памяти под 2-ю строку (4 элемента):

b[2] = new int [4];

Здесь b[0], b[1] и b[2] – это отдельные массивы, к которым можно обращаться по имени, ниже приведен пример работы со ступенчатым массивом с использованием выделения памяти под каждую строку (лист. 3).

Другой способ выделения памяти:

int[] [] b = {new int[5], new int[3], new int[4]};

K элементу ступенчатого массива обращаются, указывая каждую размерность в своих квадратных скобках, например:b[1][2] b[i][j] b[j][i]

В остальном использование ступенчатых массивов не отличается от использования прямоугольных.

54. Символы. Массивы символов. Примеры использования.

В Си массивы можно грубо разделить на 2 типа: массив чисел и массив символов. Разумеется, такое деление абсолютно условное ведь символы — это также целые числа. Массивы символов также имеют несколько иной синтаксис. Ниже приведены примеры объявления массивов: int arr[100];

int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

char ch[]  = {'R','u','b','y','D','e','v','.','r','u'};

char ch2[] = "RubyDev.ru";

В первом случае мы объявляем массив целых чисел (4 байта на число) размером в 100 элементов. Точнее мы резервируем память для хранения 100 элементов типа int.

Во втором случае мы определяем массив из 10 целочисленных элементов и сразу же присваиваем элементам массива значения.

В третьем случае мы определяем массив символов. В Си нету строк, но есть массивы символов, которые заменяют строки.

В последнем случае мы также объявляем массив символов с помощью специального — более лаконичного синтаксиса. Массивы ch и ch2 практически идентичны, но есть одно отличие. Когда для создания массива мы используем синтаксис со строковой константой, то в конец массива символов автоматически добавляется символ \0, при использовании стандартного синтаксиса обявления массива мы должны самостоятельно добавлять \0 в качестве последнего элемента массива символов. Символ \0 (null) используется для идентификации конца строки. О страках мы поговорим более подробно в отдельной статье.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]