Доступ к элементам массива может производиться
двумя различными способами.
Первый способ связан с применением обычных индексных выражений в квадратных скобках, например:
array[18] = 3 или array[i + 3] = 9. При данном способе доступа записываются два выражения. Второе выражение должно быть заключено в квадратные скобки. Одно из данных выражений должно являться указателем, а
второе — выражением целого типа. Последовательность записи данных выражений может быть произвольной, однако в квадратных скобках следует записывать выражение, следующее вторым. Поэтому записи
array[16] и 16[array] будут являться одинаковыми и
обозначающими элемент массива с номером шестнадцать. Указатель, который используется в индексном выражении, не всегда является константой, которая указывает на какой-либо массив, это может быть и
переменная. Например, после выполнения присваивания ptr = array доступ к шестнадцатому элементу массива можно получить, применяя указатель ptr в форме ptr[16] или 16[ptr].
Второй способ доступа к элементам массива связан
с применением адресных выражений и операции разадресации в виде *(array+16) = 3 или *(array+i+2) = 7. При
данном способе доступа адресное выражение соответствует адресу шестнадцатого элемента массива,
тоже может быть записано различными способами:
*(array+16) или *(16+array).
При работе на компьютере первый способ приводится ко второму, т. е. индексное выражение стано- вится адресным. Для ранее рассмотренных примеров array[16] и 16[array] преобразуются в *(array+16).
Для доступа к начальному элементу массива, т. е.
к элементу с нулевым индексом, можно применять
просто значение указателя array или ptr. Любое из
присваиваний
*array = 2;
array[0] = 2;
*(array+0) = 2;
*ptr = 2;
ptr[0] = 2;
*(ptr+0) = 2;
присваивает начальному элементу массива значение
2, но быстрее всего выполнятся присваивания *array =
2 и *ptr = 2, так как в них не требуется выполнять операции сложения.