Найти тему

Курс по C++ для новичков. Массивы, строки и указатели. Часть 6.

Оглавление

Инициализация массивов

Вы можете инициализировать массив при его объявлении с помощью фигурных скобок.

тип имя_массива[размер] = {список_значений};

В список значений входит список значений массива, перечисленные через запятую. Приведём пример инициализации элементов массива типа int.

int mas[5] = {1, 2, 5, -3, 0};

После выполнения этой инструкции элемент mas[0] получает значение 1, элемент mas[1] получает значение 2, элемент mas[2] получает значение 5, элемент mas[3] получает значение -3, элемент mas[4] получает значение 0.

Для символьных массивов (строк) инициализация имеет такую форму.

char имя_массива[размер] = "строка";

К примеру, здесь мы инициализируем переменную s фразой "Привет".

char s[7] = "Привет";

Это идентично поэлементной инициализации.

char s[7] = {'П', 'р', 'и', 'в', 'е', 'т', '\0'};

Многомерные массивы инициализируются примерно так же. В следующем фрагменте программы массив sqrs инициализируется числами от 1 до 10 и их квадратами.

-2

В памяти этот массив располагается так:

-3

Инициализация "безразмерных" массивов

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

int nums[] = {1, 2, 3, 4};

Такие массивы иногда бывают полезны, например вам нужно создать строку, в которой будет храниться какая-нибудь ссылка.

char link[228] = "http://www.zen.yandex.ru";

Здесь будет весьма проблематично считать количество символов, поэтому лучше использовать "безразмерную" инициализацию, где компилятор сам посчитает количество элементов массива.

char link[] = "http://www.zen.yandex.ru";

Массивы строк

Так же возможно создать массив строк. Используется это, например в программах, где нужно вводить какие-то команды. После ввода команды программа проверяет, существует ли такая команда вообще, а проверяет она сравнивая с массивом строк, в котором содержатся все команды. Например, здесь мы создаём массив, который будет хранить 30 строк длиною 80 символов.

char str_array[30][80];

Чтобы получить доступ к одной из строк, нужно просто обратиться по одному индексу, допустим:

str_array[3];

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

str_array[3][2];

Здесь мы обратились к 3 символу 4 строки.

В следующей программе продемонстрируется использование массива строк для создания простого телефонного каталога. Двумерный массив numbers будет хранить пары значений: имя и телефон. Для того, чтобы получить телефон, нужно ввести имя.

-4
-5

Возможные выводы в консоль

-6
-7

Заметьте, что в цикле мы переменную-счётчик инкрементируем на 2, это связано с тем, что имена и номера телефонов чередуются.

Подпишитесь на канал, чтобы не потерять курс!

Следующий урок

Предыдущий урок

Список всех уроков курса.

Наука
7 млн интересуются