
«В объявлении массиваinputValues было указано, что его максимальная длина равна 128. При записи большего числа данных, чем определено в объявлении, ваша программа может работать неправильно и даже аварийно завершать работу. Поэтому лучше застраховаться и оставить больше места для хранения данных. Неважно, насколько велик массив; всегда нужно следить за тем, чтобы операции с массивом не приводили к выходу за его пределы.»
[ Атас! ]
Функция main заканчивается выводом на экран содержимого массива и суммы его элементов.

«Среда Dev-C++ может помочь вам в работе с исходными текстами, в которых имеется много функций. На рис. 7.1 показано содержимое вкладкиClasses ( Классы ) , в которой перечисляются все функции в исходном файле. Двойной щелчок на имени функции переносит вас в окне редактирования в строку с этой функцией.»
[ Советы ]
Функция displayArray( ) содержит обычный цикл for , который используется для прохождения по массиву. Каждый очередной элемент массива добавляется к переменной accumulator . Передаваемый функции параметр sizeOfArray включает количество значений, содержащихся в массиве.
Напомню ещё раз, что индекс массива в С++ отсчитывается от 0 , а не от 1. Кроме того, обратите внимание, что цикл for прерывается в тот момент, когда значение i становится равным sizeOfArray . Вы же не хотите добавлять все 128 элементов массива integerArray к accumulator ? Ни один элемент массива, индекс которого больше или равен числу sizeOfArray , учитываться не будет. Вот как выглядит пример работы с этой программой:
_________________
95 стр. Глава 7. Хранение последовательностей в массивах

Эта программа суммирует числа, введённые пользователем
Цикл прерывается, когда пользователь вводит
отрицательное число
Введите следующее число: 1
Введите следующее число: 2
Введите следующее число: 3
Введите следующее число: -1
В массиве хранятся следующие значения:
0: 1
1: 2
2: 3
Сумма введённых чисел равна 6
Press any key to continue...

Рис. 7.1. Вкладка Классы выводит информацию о функциях, составляющих программу
Инициализация массива...96
Локальная переменная нежизнеспособна до тех пор, пока ей не присвоят значение. Другими словами, пока вы в ней что-то не сохраните, она будет содержать мусор. Локальное описание массива происходит так же: пока каждому элементу не присвоят какие-либо значения, в ячейках массива будет содержаться мусор. Локальную переменную следует инициализировать при её объявлении, и ещё в большей степени это справедливо для массивов. Слишком уж легко наткнуться на неработоспособную ячейку в неинициализированном массиве.
К счастью, массив может быть инициализирован сразу во время объявления, например:
float floatArray[ 5 ] = { 0.0 , 1.0 , 2.0 , 3.0 , 4.0 } ;
В этом фрагменте элементу floatArray[ 0 ] присваивается значение 0 , floatArray[ 1 ] — 1 , floatArray[ 2 ] — 2 и т.д.
_________________
96 стр. Часть 2. Становимся функциональными программистами
Размер массива может определяться и количеством инициализирующих констант. Например, перечислив в скобках значения инициализаторов, можно ограничить размер массива floatArray пятью элементами. С++ умеет очень хорошо считать ( по крайней мере, его можно с уверенностью использовать для этого ). Так, следующее объявление идентично представленному выше:
float floatArray[ ] = { 0.0 , 1.0 , 2.0 , 3.0 , 4.0 } ;
Все элементы массива можно инициализировать одним и тем же значением, указав его только один раз. Например, далее все 25 элементов массива floatArray инициализируются значением 1.0.
float floatArray[ 25 ] = { 1.0 } ;
Выход за границы массива...97
Математики перечисляют содержимое массивов, начиная с элемента номер 1. Первым элементом математического массива х является х( 1 ) . Во многих языках программирования также начинают перечисление элементов массива с 1. Но в С++ массивы индексируются начиная с 0! Первый элемент массива С++ обозначается как valueArray[ 0 ] . Первый индекс массива С++ нулевой; поэтому последним элементом 128-элементного целочисленного массива является integerArray[ 127 ] , а не integerArray[ 128 ] .
Читать дальше