Массив является контейнером безымянных объектов одинакового типа, к которым обращаются по позиции. Массивы имеют фиксированный размер.

Оператор объявления массива имеет форму a[d], где a - имя; d - размерность определяемого массива.

Размерность задается количеством элементов массива, она должна быть больше нуля. Количество элементов - это часть типа массива, поэтому она должна быть известна на момент компиляции. Следовательно размерность должна быть константой.

int count = 4;
const int size = 10;
int mass[5]; //массив пяти целых чисел
int *pointers[size]; //массив 10 указателей на int
string wrong[count]; //ошибка: count - не константа

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

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

const int size = 10;
int mass1[size] = {0,1,2,3,4,5,6,7,8,9}; //массив из 10 элементов
int mass2[] = {1,2,3,4,5}; //массив из 5 элементов
int mass3[5] = {0,1,2}; //эквивалентно mass3[5] = {0,1,2,0,0}; 
string mass4[3] = {"a","b"}; //эквивалентно mass4[3] = {"a","b",""};
int mass5[1] = {1,2}; //ошибка: превышен лимит значений

Нельзя инициализировать массив как копию другого массива, не допускается также присвоение одного массива другому.

int a[] = {0,1,2}; //массив из трех целых чисел
int a2[] = a; //ошибка: нельзя инициализировать один массив другим
a2 = a; //ошибка: нельзя присвоить один массив другому

Доступ к элементам массива происходит через оператор индексирования []. Индексы в массиве начинаются с 0. Чтобы получить доступ к пятой ячейке массива, следует обратиться к mass[4].


 Похожие публикации
2016-01-31 • Просмотров [ 384 ]