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

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

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

Массив

a

a[0]

a[0][0]

a[0][1]

…

a[1]

…

a[1][0]

a[1][1]

…

a[n]

a[n][0]

a[n][1]

…

Объявление ступенчатого массива:

тип [][] имя_массива;

Например:

int [][]a;

Фактически мы объявили одномерный массив ссылок на целочисленные одномерные массивы. При таком описании потребуется не только выделять память под одномерный массив ссылок, но и под каждый из целочисленных одномерных массивов. Такое распределение памяти позволяет определять произвольную длину каждой строки массива (отсюда и произошло название массива – ступенчатый). Например:

int [][] a= new int [3][]; // Создаем три строки

a[0]=new int [2]; // 0-ая строка ссылается на 2-х элементый одномерный массив

a[1]=new int [3]; // 1-ая строка ссылается на 3-х элементый одномерный массив

a[2]=new int [10]; // 2-ая строка ссылается на 10-х элементый одномерный массив

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

int [][] a= {new int [2], new int [3], new int [10]};

Так как каждая строка ступенчатого массива фактически является одномерным массивом, то с каждой строкой можно работать как с экземпляром класса Array. Это является преимуществом ступенчатых массивов перед двумерными массивами.

Билет №12. Символьный тип char, неизменяемы строки string и изменяемые строки StringBuider.

Символы и строки

Обработка текстовой информации является одной из самых распространенных задач современного программировании. С# предоставляет для ее решения широкий набор средств: символы char, неизменяемые строки string, изменяемые строки StringBuider и регулярные выражения Regex.

Символы char

Символьный тип char предназначен для хранения символа в кодировке Unicode. Символьный тип относится к встроенным типам данных С# и соответствует стандартному классу Сhar библиотеки .Net из пространства имен System

Неизменяемые строки string

Тип string, предназначенный для работы со стоками символов в кодировке Unicode, является встроенным типом С#. Ему соответствует базовый тип класса System.String библиотеки .Net. Каждый объект string - это неизменяемая последовательность символов Unicode, т.е. методы, предназначенные для изменения строк, возвращают измененные копии, исходные же строки остаются неизменными.

Создать строку можно несколькими способами:

  1. string s; // инициализация отложена

  2. string s=''кол около колокола''; //инициализация строковым литералом

  3. string s=@''Привет! //символ @ сообщает конструктору string, что строку

Сегодня хорошая погода!!! '' // нужно воспринимать буквально, даже если она занимает

/

  1. string s=new string (' ', 20); //конструктор создает строку из 20 пробелов

  2. int x = 12344556; //инициализировали целочисленную переменную

string s = x.ToString(); //преобразовали ее к типу string

  1. char [] a={'a', 'b', 'c', 'd', 'e'}; //создали массив символов

string v=new string (a); // создание строки из массива символов

  1. char [] a={'a', 'b', 'c', 'd', 'e'}; //создание строки из части массива символов, при этом: 0

string v=new string (a, 0, 2) // показывает с какого символа, 2 – сколько символов

При работе с объектами класса string нужно учитывать их свойство неизменяемости, т.е. тот факт, что методы изменяют не сами строки, а их копии.

Боротся с таким засорением придется сборщику мусора, что будет сказываться на производительности программы. Поэтому если нужно изменять строку, то лучше пользоваться классом StringBuilder.