- Библиотеки
- Операторы
- Sketch
- Управляющие операторы
- Синтаксис
- Арифметические операторы
- Операторы сравнения
- Логические операторы
- Указатели доступа
- Битовые операторы
- Составные операторы
- Данные
- Типы данных
- array (Массивы)
- Преобразование типов данных
- Область видимости переменных и квалификаторы
- Утилиты
- Функции
- Цифровой ввод/вывод
- Аналоговый вход/выход
- Расширенный ввод/вывод
- Время
- Математические функции
- Тригонометрические функции
- Символы
- Случайные числа
- Биты и байты
- Внешние Прерывания
- Прерывания
- Функции передачи данных
- Функции
array (Массивы)
Описание
Массив - это набор переменных, доступ к которым осуществляется с помощью номера индекса. Массивы на языке программирования C++, на которых написаны скетчи Arduino, могут быть сложными, но использование простых массивов относительно просто.
Создание (объявление) массива
Все перечисленные ниже методы являются допустимыми способами создания (объявления) массива.
int myInts[6]; //Вы можете объявить массив без инициализации, как в myInts.
int myPins[] = {2, 4, 8, 3, 6}; //В myPins мы объявляем массив без явного выбора размера. Компилятор считает элементы и создает массив соответствующего размера.
int mySensVals[6] = {2, 4, -8, 3, 2}; //Размер может быть задан явно, одновременно с инициализацией элементов массива
// При объявлении массива типа char требуется еще один элемент массива для нулевого символа.
char message[6] = "hello";
Доступ к массиву
Индексация массива начинается с 0, то есть, первый элемент массива имеет индекс 0, следовательно
mySensVals[0] == 2, mySensVals[1] == 4, и т.д.
Это также означает, что в массиве с десятью элементами индекс девять является последним элементом. Следовательно:
int myArray[10]={9, 3, 2, 4, 3, 2, 7, 8, 9, 11};
// myArray[9] содержит 11
// myArray[10] неверно и содержит случайную информацию (другой адрес памяти)
Присваиваем значение элементу массива:
mySensVals[0] = 10;
Возвращаем значение элемента массива:
x = mySensVals[4];
Массивы и FOR циклы
Внутри массивов часто манипулируют для циклов, где счетчик циклов используется в качестве индекса для каждого элемента массива. Например, чтобы напечатать элементы массива через последовательный порт, вы можете сделать что-то вроде этого:
int i;
for (i = 0; i < 5; i = i + 1) {
Serial.println(myPins[i]);
}