Одномерные массивы — это поименованный набор, который состоит из однотипных компонентов.
Введение
Массивы считаются самым распространённым методом структурного оформления данных, который позволяет очень удобно размещать и обрабатывать в компьютерных устройствах значительные информационные объёмы.
Массив является набором данных одинакового типа, которые имеют одно общее имя, называемое именем массива, и отличающихся расположением в массиве.
В языке С++ массив не считается стандартизированным видом данных, более того, у него имеются разные типы: ìnt, char, float, double и так далее. Имеется возможность формировать массивы массивов, и многие другие. В массивах сохраняются конкретные величины, называемые элементами массива. Все, составляющие массив, элементы обязаны быть однотипными. У каждого элемента массива имеется свой индекс, который определяет положение компонента в составе массива. Размерность массива — это число измерений массива, то есть это количество индексов. Объём по всем измерениям массива совместно с видом его компонентов задаёт число байт, которое необходимо для сохранения массива в памяти. Эта количество байт определяется при работе компилятора. По этой причине размерность массива может задаваться только целым неотрицательным числом или выражением. К примеру, так:
ìnt a[10]; // определение одномерного массива из десяти элементов
int b[2][5]; // определение двумерного массива из двух строк и пяти столбцов
const ìnt n = 10;
ìnt a[n]; // размеры массива определяются константой
Задание объёмов массива удобнее выполнять при помощи поименованных констант. Для определения размерности массивов надо проверить, как он был объявлен. Когда указывается только один индекс, то это означает, что массив одномерный. Если указано два индекса, то это двумерный массив и так далее. Массивы, имеющие более одного индекса, считаются многомерными.
Одномерные массивы
Одномерный массив является набором элементов одного типа, обращение к которым возможно с использованием одного индекса. Все компоненты массива хранятся в памяти в последовательном порядке, при этом начальному (первому) компоненту присваивается индекс с номером нуль (последующие компоненты имеют индексы один, два и так далее). То есть под индексом понимается порядковый номер компонента в составе массива.
Для того, чтобы массив можно было использовать в дальнейшем в программе, его, как и просто переменные, необходимо сначала объявить. Выполнить объявление одномерного массива возможно так:
тип_элементов имя_массива[размер_массива];
где:
- тип_элементов – используемый в С++ тип компонентов массива;
- имя_массива – имя задаётся точно также, как и имена других переменных;
- размер_массива – задаётся число компонентов массива.
Приведём возможные способы объявления одномерных массивов разных видов:
ìnt a[9]; // массив из девяти компонентов типа ìnt
float array[5]; // массив из пяти компонентов типа float
char mas[41]; // массив из сорока одного компонента типа char
Необходимо помнить, что применение безымянных констант для задания массива лучше не использовать. Однотипные массивы возможно объявить при помощи списка через запятые, при этом можно включать в список и однотипные переменные. Например:
ìnt maxY, maxZ, ar[11], mas[8];
Когда объявляется массив, нужно всегда иметь в виду, что начало отсчёта индексов идёт от нуля. То есть первому элементу массива соответствует индекс нуль. Таким образом, допустимый диапазон индексных значений расположен от нуля до величины размера массива за минусом единицы. К примеру, если объявлено
ìnt mas[11];
то это означает присутствие одиннадцати переменных с индексами от нуля до десяти. Если обращаться к компоненту массива с недопустимым индексом, то это ведёт к появлению ошибки, которая вызвана запросом зоны памяти, не входящей в массив.
Операция инициализации одномерного массива
Процедура инициализации одномерного массива заключается в задании исходных величин его компонентам, которая выполняется при объявлении. Это действие выполняется путём указания в фигурных скобках исходных величин:
ìnt mas[6] = {2, -6,11, 245, -59};
Когда выполнятся инициализация массива, но задаётся меньшее количество исходных значений, чем объём массива, то оставшимся компонентам присваиваются нулевые значения. То есть, если объявляется:
ìnt mas[11] = {2, 4, 6, 7};
то формируется массив из одиннадцати компонентов целочисленного вида. При этом начальные четыре элемента получат указанные в скобках значения, а все другие будут равны нулю. Это свойство возможно применить при инициализации массива, у которого все компоненты равны нулю:
ìnt mas[21] = {0};
Но, как уже указывалось выше, при задании величин больше, чем заданный объём массива, то при компиляции программы появится ошибка. При выполнении инициализации не обязательно указывать число компонентов массива:
ìnt mas[] = {2, 4, 6, 8, 10};
Объём массива в этом случае задаётся числом величин в перечне инициализируемых компонентов. Число компонентов массива в таком варианте, возможно задать так:
const ìnt n = (sizeof(mas) / sizeof(mas[0]));
sizeof(mas) это число байт, которое отведено массиву mas.
sizeof(mas[0]) это число байт, которое отведено одному компоненту.
Если возникает необходимость, то возможно задание массива, состоящего из констант, так:
const ìnt array[] = {6, 5, 4, 3, 2};
В этом случае компоненты массива array не подлежат изменению.
Обработка одномерных массивов
В языке С++ допускается лишь работа с каждым отдельным компонентом массива. Когда mas — это массив с размером n, то каждый его компонент имеет обозначение как имя массива и далее располагается индекс нужного компонента. К примеру, это может быть mas[i]. Величина индекса лежит в пределах от нуля до n-1. Номером компонента массива могут быть:
- Константа, например, mas[4].
- Переменная, например, mas[i].
- Выражение, например, mas[4 * (i+3)].
Все компоненты массива считаются проиндексированными переменными.