Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции программирование.doc
Скачиваний:
41
Добавлен:
05.11.2018
Размер:
4.73 Mб
Скачать
        1. Обозначение элементов массива

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

Индексированная переменная (индексное выражение) – обозначение ячейки для хранения элемента массива. Именуется указанием идентификатора массива и индекса (индексов) элемента.

  • Внимание ! Особенность обозначения элементов массива в Си - нумерация индексов от 0, а не от 1. Поэтому индексы в Си на единицу меньше заданных математически. Это обстоятельство должно учитываться в программе, особенно при формировании условия повторения (выхода из) цикла.

Схема распределения памяти для хранения одномерного массива такова:

индекс 0

индекс 1

индекс 2

индекс i-1

индекс n-2

индекс n-1

1-й

элемент

2-й

элемент

3-й

элемент

..

..

..

i-й

элемент

..

..

..

n-1-й

элемент

n-й

элемент

Длина ячейки для хранения каждого элемента определяется типом массива:

  • символьный – 1 байт;

  • целочисленный – 2 байта;

  • вещественный – 4 байта;

  • двойной точности – 8 байт.

Структура обозначения индексированной переменной одномерного массива:

имя[индекс]

, где имя – идентификатор массива;

индекс – операнд целого типа, определяющий номер элемента в ряду других, составляющих массив;

[ ] – ограничители индекса.

Например, в описанном ранее массиве D(16) первый элемент обозначается индексным выражением d[0], второй – d[1], текущий – d[i], предпоследний – d[14] и последний – d[15].

При необходимости индекс может задаваться арифметическим выражением. Например, d[i+2] или d[jx5+3]. В любом случае на момент использования переменной индекс должен быть определен (рассчитан) и полученное значение должно укладываться в заданный описателем диапазон.

Рассмотренный пример идентификации элементов массива D применим к любому из описанных одномерных массивов.

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

Адрес любой переменной определяется операцией & . Следовательно, у элемента d[0] адрес – &d[0], у d[i] – &d[i], т.е. все элементы массива располагаются в оперативной памяти линейно, начиная с адреса &d[0].

В языке Си идентификатор одномерного массива однозначно определяет адрес его первого элемента. Например, c  &c[0], d  &d[0].

Адрес каждого элемента одномерного массива выражается зависимостью имя+индекс (индекс определяет сдвиг элемента относительно первого на указанное им количество элементов). Например, &c[i] (адрес i-го элемента массива С) вычисляется как c+i.

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