Введение в программирование

       

Объявление массивов


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

Размещение элементов массива в памяти выполняется последовательно.

Количество элементов в массиве определяет размер массива и является константным выражением. Для создания динамических массивов стандартная библиотека C++ предусматривает тип vector.

Имя массива определяет адрес первого элемента массива.

Имя массива в отличие от имени вектора нельзя указывать в левой части оператора присваивания.

Объявление массива может иметь следующее формальное описание:

// Объявление одномерного массива тип имя_массива[размерность_N]; // Объявление одномерного массива с // одновременной инициализацией тип имя_массива[размерность_N]= {значение0, значение1, ..., значение_N-1}; // Объявление безразмерного массива с // одновременной инициализацией: // размерность определяется количеством // значений, указанных в списке инициализации тип имя_массива[]={значение0, значение1, ..., значение_N-1}; // Объявление многомерного массива тип имя_массива[размерность_1N]... [размерность_MN]; // Объявление многомерного массива с // одновременной инициализацией тип имя_массива [размерность_N]... [размерность_M] = { {значение0, значение1, ..., значение_M-1}, ... {значение0N, значение1N, ..., значение_NM-1}};

Размерность массива может:

  • указываться любым константным выражением целого типа;
  • автоматически определяться компилятором по списку значений инициализации массива (если размерность не указана явно).

Например:

int arrayOfInteger[17]; // Массив из 17 переменных типа int char arrayOfChar_3[3]={'L','M','N'}; // Объявление и инициализация // символьного массива char arrayOfChar_0[]={"Array of char. \n"}; int arrayOfInteger_6[2][3]= { {1,2,3}, {11,12,13}}; // Объявление и инициализация // двумерного массива

Если ни размерность массива, ни список значений инициализации не указаны, то будет создан массив нулевой длины.


Объявление многомерных массивов выполняется по следующим правилам:

  • список значений инициализации можно указывать как в единых фигурных скобках, так и в общих фигурных скобках, включающих через запятую списки по каждому левому индексу в отдельных фигурных скобках;
  • при использовании общих фигурных скобок сначала следует указывать значения для неизменяемого самого левого индекса;
  • можно не указывать только самую левую размерность массива, получая ее значение из списка значений инициализации.


Инициализацию массива можно выполнить одним из следующих способов:

  • указать во время объявления массива в фигурных скобках значения инициализации (начиная с нулевого элемента и первого столбца);
  • присвоить значение элементам массива во время выполнения программы;
  • объявить массив как глобальный или статический, инициализируемый по умолчанию (для числовых значений выполняется инициализация нулями, а для указателей - значением null). Глобальный массив объявляется вне всех функций, а статический массив объявляется с модификатором static.


Если количество значений инициализации больше, чем объявленная размерность массива, то компилятор Visual C++ инициирует ошибку.

Если количество значений инициализации меньше, чем объявленная размерность массива, то оставшиеся значения автоматически инициализируются нулями.


Содержание раздела