Основы программирования на C++, PASCAL
4.9. Массивы
Понятие массива знакомо из Паскаля. Массив — это структура однотипных элементов, занимающих непрерывную область памяти. С массивом связаны следующие его свойства: имя, тип, размерность, размер.
Формат описания массива следующий:
тип элементов имя [константное_выражение]
Константное выражение определяет размер массива, т. е. число элементов этого массива. Например, согласно описанию
int A[10];
объявлен массив с именем А, содержащий 10 элементов целого типа. Элементы массива обозначаются индексированными именами. Нижнее значение индекса равно 0:
А[0], А[1], А[2], А[3], А[4], А[5], А[6], А[7], А[8], А[9]
В отличие от Паскаля в Си нельзя определять произвольные диапазоны для индексов. Размер массива, указанный в описании, всегда на единицу больше максимального значения индекса.
Размер массива может явно не указываться, если при его объявлении производится инициализация значений элементов. Например:
int р[]={2, 4, 6, 10, 1};
В этом случае создается массив из пяти элементов со следующими значениями:
р[0]=2, р[1]=4, р[2]=6, р[3]=10, р[4]=1
В результате следующего объявления массива
int М[6]={5, 3, 2};
будет создан массив из шести элементов. Первые три элемента получат инициализированные значения. Значения остальных будут либо неопределенными, либо равны нулю, если массив внешний или статический.
Рассмотрим несколько примеров программ обработки одномерных массивов.
Пример 1. Ввод с клавиатуры и вывод на экран одномерного массива.
Пример 2. Ввод вещественного массива и вычисление среднего значения.
В этой программе обратите внимание на определение размера массива через константу.
Пример 3. Сортировка массива «методом пузырька».
Алгоритм сортировки массива «методом пузырька» описан в разд. 3.17. В данной программе массив инициализирован. Его размер равен числу заданных значений. Чтобы сделать программу универсальной по отношению к размеру массива, значение размера вычисляется автоматически и заносится в переменную n. Для этого используется операция sizeof() — определение размера в байтах. Результат sizeof (X) равен размеру в памяти всего массива Х — 20 байтам. Результат sizeof(X[0]) равен размеру одного элемента массива — 2 байтам. Отношение этих величин равно 10 — числу элементов массива. Внимательно проанализируйте организацию перебора значений параметров вложенных циклов — i, j .