Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВВЕДЕНИЕ В МАССИВЫ И СТРОКИ.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
376.81 Кб
Скачать

Введение в массивы и строки

1. Понятие массива

В общем случае массив представляет собой набор элементов одного типа, расположенных в непрерывной области памяти.

Массив имеет тип, каждый элемент имеет уникальный номер. Доступ к элементу массива выполняется путем указания порядкового номера и имени массива.

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

  • Одномерный массив

  • Многомерный массив

  • Массив массивов

2. Объявление массива и его инициализация

Тип элементов[] ИмяМассива;

ИмяМассива = new Тип элементов[кол-во элементов];

int[] a;

a=new int[3];

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

int[] a;

a=new int[]{10, 20, 300};

3. Операции

Операции с элементами – любые операции, определенные для того типа, к которому относятся элементы массива.

a[2]=a[0]+a[1]

Операции с массивом:

  • присваивание (копируется значение ссылки)

  • отношение (сравниваются значения ссылок)

int[] a, b, c;

bool f1, f2;

a=new int[]{10, 20};

b=new int[]{10, 20};

f1= a==b; //false 100≠200

c=a;

f2= c==a; //true 100=100

b=a;

Область памяти, на которую потеряна ссылка (в данном случае область памяти по адресу 200), ставится в очередь на освобождение. Эта память будет автоматически освобождена программой MSDN «Сборщик мусора».

4. Понятие строки

Строка предназначена для хранения текста в виде множества символов (кодировка Unicode: 1 символ – 2 байта).

Отличия от массива

Хотя строка структурно подобна массиву, но формально строка не является массивом и имеет собственный тип данных string (String – синоним в MSDN) со своим набором свойств и методов.

Тип строка объявлен как класс, т.е. строка – это ссылочный тип. Тип строка относится к стандартным типам данных, т.е. все свойства заранее определены.

Операции с объектами типа строка содержательно выполняются не так, как операции с массивами.

5. Объявление и инициализация строк

string ИмяСтроки;

Размер строки указывать не требуется, он будет автоматически определен при инициализации или присавивании.

string s=”ГУ-ВШЭ”;

6. Операции со строками

Операции над элементами строки – это все операции, определенные для типа char. Исключение: над элементом строки запрещена операция присваивания, т.е. значение элемента строки изменить непосредственно невозможно.

int Код; string s=”ABBA”;

Код=s[0]; // Код => код символа ‘A’=65

s[0]=’Z’; // ошибка!

Альтернативой непосредственному изменению элемента строки является формирование новой строки с нужным значением элемента.

Операции над строками

Присваивание:

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

string s1=”ВАСЯ”, s2;

s2=s1;

Отношения:

Операции равно(==) и неравно(!=) равносильны сравнению значений строк.

s2==s1; //true ВАСЯ=ВАСЯ

В этом заключается отличие строки от массива - для массивов сравниваются ссылки.

Операции больше(>), больше или равно(>=), меньше(<), меньше или равно(<=) равносильны сравнению ссылок.

s2>=s1; //false 100>=200

При выполнении указанных операций отличий между массивом и строкой нет – в обоих случаях сравниваются ссылки.

Для того, чтобы сравнить строки на предмет больше/меньше по значению необходимо использовать метод CompareTo.

Сцепление строк:

строка1+строка2=>новая строка - объединение исходных

В операции сцепления могут использоваться помимо строки операнды других типов. При этом старшим считается тип строки.

int a=10, b=20;

string s1, s2, s3;

s1=”Итого:”+a; // Итого:10

s2=” Итого:”+a+b; // Итого:1020

s3=a+b+”= Итого”; //30= Итого