Окт
12
Опубликовано 12 Окт 2009
Рубрика: Программирование | Автор: inst

Массивы существуют в любом современном языке программирования. Массив — это упорядоченная совокупность элементов одного типа, а значит и размера, объединённая одним общим именем. Каждый такой элемент снаружи массива представлен порядковым числом, называемым индексом и доступ к нему осуществляется именно при помощи этого индекса.

Строй солдат

Чтобы досконально понять, что такое массив, достаточно провести аналогию со строем солдат. Командующий указывает: «по порядку расcчитайсь!», происходит расчёт и у каждого солдата появляется свой номер (читай, «индекс»), по которому командир может к нему обратится.

Пример: arr[-1] — неверно, arr[10.1] — тоже неверно, arr[11] — верно.

Индексы должны быть представлены целым беззнаковым числом. Любой массив в Си начинается с нулевого элемента.

Внимание! Если мы резервируем память для 12-ти элементов массива, то индекс последнего — 11! Наиболее часто встречающаяся ошибка в программах новичков по моему мнению.

В Си есть жёсткое требование к организации массива: все элементы должны располагаться в памяти по порядку друг возле друга, а имя массива указывает на начало блока памяти, где эти элементы расположены. Любое обращение к элементам массива компилятор в итоге преобразовывает в указатель, т.е. x[i] будет растолковано им как указатель на область x плюс i шагов нужного размера.

Пример: arr[0] == *arr, arr[11] == *(arr + 11 * sizeof(arr)).

Однако, прежде чем начать использовать массив, следует выделить под него нужный объём памяти.

Читать полностью »