Массивы в Arduino

Совокупность однотипных элементовМассивы — это группы однотипных данных, которые последовательно помещаются в память. Например, у нас может быть массив целых чисел (тип int), который состоит из двух или более целых чисел, встречающихся одно за другим.

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

Элемент в массиве относится к каждому значению в массиве. Если у нас есть массив целых чисел, то каждое отдельное целое число называется элементом массива. В массиве byte каждый элемент является байтом (байтового типа Arduino).

Использование массивов

В скетче ниже показано базовое использование массива:

Определение массива

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

Определение массива из 5 целых чисел:

В этом примере массив имеет тип int, но может быть float, byte и т.д.

Массив имеет имя, которое указано в примере как my_array.

Массив имеет длину [5], что означает, что в памяти выделяется место для 5 последовательных целых чисел.

Присвоение значений элементам в массиве

Каждому элементу присваивается целочисленное значение путем ссылки на него с использованием квадратных скобок [] с номером элемента, к которому нужно получить доступ, в скобках.

Обратите внимание, что нумерация элементов начинается с нуля [0], а не с единицы [1], поэтому первым элементом в массиве является элемент 0.

Таким же образом последний элемент в массиве нумеруется на единицу меньше размера массива. В этом примере размер массива равен 5, поэтому номер последнего элемента равен 4 — опять же, это потому, что мы нумеруем элементы, начиная с 0.

Доступ к массиву в цикле (loop)

Цикл for используется для получения содержимого каждого элемента в массиве по очереди и вывода значений в окно терминала через вкладку Монитор порта.

Переменная i используется в цикле for как индекс в массиве для доступа к каждому элементу массива.

В цикле i инициализируется значением 0, а затем увеличивается на единицу каждый раз в цикле, так что он считается от 0 до 4. Цикл завершается, когда i становится равным 5.

Переменная i используется в массиве для получения значения, которое содержит элемент массива, начиная с элемента 0 и заканчивая 4.

В приведенном выше фрагменте кода, когда i равно 0, осуществляется доступ к первому элементу массива, и затем мы можем получить значение, которое он содержит, равное 23 в примере скетча.

Подробнее об инициализации массивов

Вместо инициализации каждого элемента в массиве по отдельности, массив можно определить и инициализировать в одной строке, как показано в коде ниже.

Этот скетч делает то же самое, что и предыдущий.

Значения для инициализации каждого элемента помещаются в фигурные скобки {} после оператора присваивания (знак равенства =). Первое значение между фигурными скобками будет присвоено первому элементу в массиве (элемент номер 0), второе число между фигурными скобками будет присвоено второму элементу в массиве (элемент номер 1) и т.д.

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

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

Вывод

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

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

С Уважением, МониторБанк

Добавить комментарий