Инициализация массивов
Вы можете инициализировать массив при его объявлении с помощью фигурных скобок.
тип имя_массива[размер] = {список_значений};
В список значений входит список значений массива, перечисленные через запятую. Приведём пример инициализации элементов массива типа 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 и их квадратами.
В памяти этот массив располагается так:
Инициализация "безразмерных" массивов
При объявлении массивов вы можете не указывать их размер, он автоматически выставится компилятором на тот размер, сколько элементов будет в инициализации.
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 будет хранить пары значений: имя и телефон. Для того, чтобы получить телефон, нужно ввести имя.
Возможные выводы в консоль
Заметьте, что в цикле мы переменную-счётчик инкрементируем на 2, это связано с тем, что имена и номера телефонов чередуются.
Подпишитесь на канал, чтобы не потерять курс!
Список всех уроков курса.