Массивы в С

Массив — это такая структура данных языка С, в которой:

  1. хранятся однотипные элементы,
  2. располагаясь в памяти последовательно друг за другом
  3. в порядке возрастания индексов

Доступ к элементам массива

Осуществляется по индексу:

A[i] – i-й элемент массива.

Замечания:

  1. поиск по индексу происходит очень быстро;
  2. индекс начинается от 0 (нуля!);
  3. индекс элемента — это НЕ НОМЕР элемента!
  4. индекс N-го элемента — N-1;
  5. выход за границы массива никем не контролируется;

Адрес начала массива — это адрес первого элемента.

Внимание!

В языке С обращение к элементу массива — это прямое обращение к области памяти по адресу элемента, который вычисляется по его индексу, и интерпретируется в соответствии с типом массива.

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

Кстати, обращение с отрицательными индексами не вызывает у компилятора вопросов:

A[-1] — это предыдущий элемент, который лежит в памяти за начальной границей, до массива.