Массив является одним из ключевых понятий программирования. Итак, массив — это несколько значений одного типа, расположенных в памяти последовательно. Зная местоположение первого из этих элементов, можно обратиться к любому из них. Порядковый номер элемента в массиве называется индексом.

Массивы — это та часть языка Си, которая не подверглась изменениям при эволюционировании языка в C++. Поэтому их объявление и работа с ними на обоих этих языках совпадает. Чтобы создать в памяти новый массив, используется такая запись:

 

int m[10];


int — это тип элементов массива, одинаковый для всех них. Конечно, Вы можете использовать любой другой тип (кроме void, ссылок и типов с неизвестным размером), чтобы задавать массивы. Квадратные скобки обозначают, что это массив, целое число в скобках (обязательно константа, известная на момент компиляции) — его размер, т.е. количество элементов. m — это имя нашей переменной-массива. Важно заметить, что в C/C++ типы «массив» и «указатель» тесно связаны, а именно: массив практически всегда автоматически приводится к указателю на свой первый элемент. Поэтому в функцию, которая требует указатель, вполне законно передавать массив:

void MyFunc( int *arr );
MyFunc(m);


В языке С массивы при объявлении можно инициализировать. Общая форма инициализации массива аналогична инициализации переменной:

тип имя_массива[размер1]...[размер№] = {список_значений};
Список_значений представляет собой список констант, разделенных запятыми. Типы констант должны быть совместимыми с типом массива. Первая константа присваивается первому элементу массива, вторая — второму и так далее. После закрывающейся фигурной скобки точка с запятой обязательна.


В следующем примере массив целых из 10 элементов инициализируется числами от 1 до 10:

int i[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Здесь элементу i[0] присваивается 1, a i[9] — 10.

Символьные массивы, содержащие строки, можно инициализировать строковыми константами:

char имя_массива[размер] = "строка";
В следующем примере массив str инициализируется фразой "Язык С":

char str[9] = "Язык C";
Это объявление можно записать так:

char str[9] = {'Я', 'з', 'ы', 'к', ' ', 'C', '\0'};
Строка кончается нулевым символом, поэтому при объявлении необходимо задавать размер массива, достаточный для того, чтобы этот символ поместился в нем. В предыдущем примере размер строки задан равным 7, хотя во фразе "Язык С" содержится 6 символов. Если строка инициализируется строковой константой, компилятор автоматически добавляет нулевой символ в конец строки.