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