|
Программирование >> Структурное программирование
4.2. Массивы Массив - это последовательная группа ячеек памяти, имеющих одинаковое имя и одинаковый тип. Чтобы сослаться на отдельную ячейку или элемент массива, мы указываем имя массива и номер позиции отдельного элемента массива. На рис. 4.1 показан массив целых чисел, названный с. Этот массив содержит 12 элементов. На любой элемент массива можно сослаться, указывая имя массива и номер позиции элемента, заключенный в квадратные скобки ([ ]). Первый элемент каждого массива - это нулевой элемент. Таким образом, первый элемент массива с, указывают как с[0], второй элемент - как с[1], седьмой - как с[6] и вообще i-ый элемент массива с указывают как с[1-1]. Имена массивов должны удовлетворять тем же требованиям, которые предъявляются к другим именам переменных. Имя массива (заметьте, что все элементы этого массива имеют одно и то же имя, с)
Позиция номера элемента внутри массива с Рис. 4.1. Массив из 12-ти элементов Номер позиции, указанный внутри квадратных скобок, называется индексом. Индекс должен быть целым числом или целым выражением. Если программа использует выражение в качестве индекса, то выражение вычисляется с целью определения индекса. Например, если мы предположим, что переменная а равна 5, а переменная b равна 6, то оператор с[а -Ь Ь] -1-= 2; добавляет 2 к элементу массива с[11]. Заметим, что имя индексированного массива является целой L-величиной - оно может быть использовано в левой части оператора присваивания. Проанализируем массив с на рис. 4.1 более детально. Имя массива - это с. Его двенадцать элементов обозначены как с[0], с[1], с[2],...,с[11]. Значение с[0] равно 45, значение с[1] равно 6, значение с[7] равно 62, значение с[11] равно 78. Чтобы напечатать сумму значений, содержащихся в первых трех элементах массива с, мы должны были бы написать cout c[0] +с[1] +с[2] endl; Чтобы разделить значение седьмого элемента массива с на 2 и присвоить результат переменной х, мы должны были бы написать X = с[6] /2; Типичная ошибка программирования 4.1 Важно отметить различие между седьмым элементом массива и элементом массива семь . Поскольку индексы массива начинаются с О, седьмой элемент массива имеет индекс шесть, тогда как элемент массива семь имеет индекс 7 и на самом деле является восьмым элементом массива. Это - источник ошибок типа завышения (или занижения) на единицу. Квадратные скобки, внутри которых записывается индекс массива, на самом деле рассматриваются в С++ как операция индексации. Квадратные скобки имеют тот же уровень старшинства, что и круглые скобки. Таблица на рис. 4.2 показывает приоритеты и ассоциативность тех операций, с которыми мы уже познакомились к настоящему моменту. Операции расположены сверху вниз в порядке понижения старшинства с указанием их ассоциативности и типа.
Рис. 4.2. Приоритеты и ассоциативность операций Щё /I присваивание массиву начальных значений \ #include <iostream.h> finclude <iomanip.h> jj main о int n[10]; for (int i = 0; i < 10; i++) присваивание массиву начальных значений n[i] = 0; cout Элемент setw(13) << Значение << endl; for(i =0; i < 10; i++) печать массива cout setw(7) i << setw(13) << n[i] endl; return 0; Рис. 4.3. Присваивание нулевых начальных значений элементам массива (часть 1 из 2) 4.3. Объявление массивов Массивы занимают область в памяти. Программист указывает тип каждого элемента, количество элементов, требуемое каждым массивом, и компилятор может зарезервировать соответствующий объем памяти. Чтобы указать компилятору зарезервировать память для 12 элементов массива целых чисел с, используется объявление int с[12]; Память может быть зарезервирована для нескольких массивов с помощью одного объявления. Следующее объявление резервирует память для 100 элементов массива целых чисел b и 27 элементов массива целых чисел х. int b[100], х[27]; Массивы могут быть объявлены и для хранения других типов данных. Например, для хранения строки символов можно использовать массив типа char. Строки символов и их схожесть с массивами, а также соотношение между указателями и массивами обсуждаются в главе 5. 4.4. Примеры использования массивов в программе на рис. 4.3 используется структура повторения for для присвоения начальных нулевых значений элементам массива п, содержащего десять целых чисел, и для печати массива в табулированном формате. Первый оператор вывода выводит на экран заголовки столбцов, печатаемых структурой for. Напомним, что setw указывает ширину поля, в котором будет выведено следующее значение.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |