Одномерные массивы
Массивы
Массив представляет собой упорядоченную конечную совокупность элементов одного типа. Число элементов массива называют его размером. Каждый элемент массива определяется идентификатором (именем) массива и своим порядковым номером – индексом. Индекс – целое число, по которому производится доступ к элементу массива.
Индексов может быть несколько. В этом случае массив называют многомерным, а количество индексов одного элемента массива называется его размерностью.
Массивы нужны тогда, когда требуется произвести одни и те же действия над многими числами, и притом эти числа должны храниться в памяти одновременно. Поэтому для работы с массивами, как правило, используются циклы, перебирающие элементы массива.
Описание массива в программе отличается от описания простой переменной наличием после имени квадратных скобок, в которых задается количество элементов массива. Например, double b[10]; – описание массива из 10 вещественных чисел.
В программе одномерный массив объявляется следующим образом:
типID_массива [размер] = {список начальных значений};
тип – тип элементов массива;
размер – количество элементов в массиве.
Список начальных значений используется при необходимости задать начальные значения (инициализировать элементы массива), он может отсутствовать. Значения в списке разделяются запятыми. (Такое задание списка элементов массива допустимо только при его инициализации и недопустимо в операции присваивания).
Примеры объявления массива:
int a[6];
double x[5]={2, 3.5, -4.5e3, 2.34, -.7 };
Если в группе {…} список значений короче, то оставшимся элементам присваивается 0.
Обращение к конкретному элементу массива в программе осуществляется путем записи имени массива и за ним в квадратных скобках - номера элемента, например:
a[0]=1;
a[i]++;
a[3]=a[i]+a[i+1];
Индексы массивов в языке Си начинаются с 0, т.е. в массиве x первый элемент: x[0], второй – x[1], … пятый – x[4].
Размер массива может задаваться только константой или константным выражением. Нельзя задавать массив переменного размера. Для этого существует отдельный механизм – динамическое выделение памяти.
С другой стороны, если требуемое количество элементов массива заранее неизвестно, часто объявляют массив достаточно большого размера, а используют лишь столько из его элементов, сколько нужно. При этом требуется переменная, задающая количество используемых в данный момент элементов массива:
int a[100], n, i;
M: cout<<"Vvedite kolichestvo elementov (ne bolshe 100)";
cin>>n;
if (n>100) goto M;
cout<<"Vvedite elementy:\n";
for (i=0; i<n; i++)
cin >> a[i];
Внимание. В языке Си с целью повышения быстродействия программы отсутствует механизм контроля выхода за границы индексов массивов. При необходимости такой механизм должен быть запрограммирован явно.