Массив в Си
Для иллюстрации приемов работы с массивами в слабо типизированных языках используем язык Си.
В этом языке нет средств определения типов массива, хотя имеется возможность определения
"массивных переменных".
Число элементов в массивной переменной определяется либо явно, либо с помощью задания списка инициализирующих значений базового типа.
Например, массивную переменную с четырьмя элементами целого типа можно определить как
int x[4]; //неинициализированный вариант
или
int x[] = {0, 2, 8, 22};//инициализированная массивная переменная
Доступ к элементам массивной переменной производится с помощью конструкции выбора, по виду аналогичной соответствующей конструкции в сильно типизированных языках
`x[i]`, где
`i` – выражение, принимающее целое значение (мы специально отметили внешний характер аналогии, поскольку в отличие от языка Паскаль в языке Си зафиксирована интерпретация операции выбора на основе более примитивных операций адресной арифметики).
Однако, в реализациях языка Си в принципе невозможен контроль выхода значения индекса за пределы массива. Кроме того, невозможно присваивание значений массивных переменных и не допускаются функции, вырабатывающие "массивные значения".