Вы вошли на сайт, как Гость
Регистрация

Массивы

Основы языка Си
(Массивы)

Массив определяет непрерывный набор однотипных объектов данных. Признаком массива служит использование квадратных скобок после идентификатора переменной. При определении в квадратных скобках указывается количество элементов массива (его размер), а при использовании в выражениях – индекс требуемого элемента. Массивы могут содержать элементы в любом из ранее рассмотренных типов представления данных: char, int, float double. Пример определения массива из 10 двухбайтовых целочисленных элементов:

int list[10];

Данное определение зарезервирует в памяти МК 20 однобайтовых ячеек памяти. В выражениях программы доступ к каждому элементу массива возможен с использованием индекса. Индекс в Си автоматически отсчитывается с 0. Поэтому в нашем примере индекс может принимать значения от 0 до 9 включительно. Как и любая другая переменная, массив может быть объявлен с одновременной инициализацией его значений. Для этого в правой части операции присваи вания «=» в фигурных скобках, через запятую перечисляются значения всех элементов массива:

int list[10]= {1,2,3,4,5,6,7,8,9,10};

Если при определении массива его размер не указывается, такой массив обязательно необходимо явно проинициализировать. При этом компилятор автоматически приравнивает размер массива к числу проинициализированных элементов.

int list[]= {1,2,3,4,5,6,7,8,9,10}; // Размер массива будет равен
//числу проинициализированных переменных т.е. 10

Массив может быть многомерным. Количество измерений определяется количеством индексов массива. Пример определения двухмерного массива:

int matrix[2],[3]= {1,2,3}{4,5,6};

Объединение некоторой группы данных в массив позволяет оперировать с этой группой, используя всего лишь одно имя переменной. Программы становятся более логичными и читабельными, что уменьшает вероятность появления ошибок программирования. Допустим по ходу исполнения алгоритма необходимо каждый элемент массива odd из 100 элементов, увеличить на 1. Следующий программный фрагмент демонстрирует реализацию этой задачи:

For (i=0, i<100, i++)
odd[i] = odd[i] +1;

Возможна так же работа с массивами чисел с плавающей точкой.