При использовании простых переменных каждой области памяти для хранения данных соответствует своё имя. Если с группой величин одинакового типа требуется выполнять однообразные действия, им дают одно имя, а различают по порядковому номеру. Это позволяет компактно записывать множество операций с помощью циклов.
Конечная именованная последовательность однотипных величин называется массивом. Таким образом массивы представляют собой механизм для группировки данных одного типа. Данные, сгруппированные в массиве, могут быть как основных (стандартных) типов, так и определённых программистом типов (абстрактных). Описание массива в программе выглядит так:
  float arr[10]; //описание массива из 10 вещественных чисел
|
В квадратных скобках задаётся количество элементов массива (размерность). Элементы массива нумеруются с нуля. При описании массива используются те же модификаторы, что и для простых переменных. Инициализирующие значения для массивов записываются в фигурных скобках. Значения элементам присваиваются по порядку. Если элементов в массиве больше, чем инициализаторов, элементы, для которых значения не указаны, обнуляются:
int b[5] = {3, 2, 1}; // b[0]=3, b[1]=2, b[2]=1, b[3]=0, b[4]=0
Размерность массива вместе с типом его элементов определяет объём памяти, необходимый для размещения массива, которое выполняется на этапе компиляции, поэтому размерность может быть задана только целой положительной константой. Если при описании массива не указана размерность, то в этом случае компилятор выделит память по количеству инициализирующих значений. Для доступа к элементу массива после его имени указывается номер элемента (индекс) в квадратных скобках. Рассмотрим пример программы, которая подсчитывает сумму элементов массива:
int main() {
const int N=5; // размер массива
int i, sum=0, arr[N]={3, 4, 5, 4, 4}; //arr[0]=3, arr[1]=4, arr[2]=5, ...
for(i=0; i<N; i++) sum = sum + arr[i];
cout << "Summa elementov: " << sum;
getch(); return 0; }
Как видно из данного примера, размерность массивов предпочтительнее задавать с помощью именованных констант, поскольку при таком подходе для её изменения достаточно скорректировать значение константы всего лишь в одном месте программы. Обратите внимание, что последний элемент массива имеет номер, на единицу меньший заданной размерности N.
Рассмотрим ещё один пример, демонстрирующий каким образом происходит инициализация элементов массива в процессе работы программы. Напишем программу, в которой пользователю предлагается ввести серию из шести значений, представляющих собой объёмы продаж изделий за каждый день недели (исключая воскресенье), а затем программа вычисляет среднее арифметическое этих значений.
int main() {
const int SIZE = 6; // 6 дней
double prod[SIZE], sum = 0, sred;
int j;
cout << "Vvedite ob'em prodag za kagdyi den:\n";
for(j = 0; j < SIZE; j++)
cin >> prod[j]; // ввод объема продаж за день
for(j = 0; j < SIZE; j++)
sum += prod[j]; // вычисление объема за 6 дней
sred = sum / SIZE; // вычисление среднего арифметического
cout << "Sredniy ob'em: " << sred << endl;
getch(); return 0;
}