Приветствую Вас ГостьПятница, 03.05.2024, 08:07

AVR & ARDUINO




Каталог статей

Главная » Статьи » Справочник

Массивы

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

Создание (объявление) массива

Ниже представлены примеры правильного объявления массивов.

 int myInts[6];
 int myPins[] = {2, 4, 8, 3, 6};
 int mySensVals[6] = {2, 4, -8, 3, 2};
 char message[6] = "hello";

Можно объявить массив без его инициализации, как myInts.

Массив myPins был объявлен без явного задания размера. Компилятор сам посчитает фактическое количество элементов и создаст в памяти массив необходимого размера.

Размер может быть задан явно, одновременно с инициализацией элементов массива, как mySensVals. Следует помнить, что при объявлении массива типа char, в нем необходимо место для хранения обязательного нулевого символа, поэтому размер массива должен быть на один символ больше, чем требует инициализируемое значение.

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

Нумерация элементов массива начинается с нуля, т.е. первый элемент массива имеет индекс 0. Следовательно:

mySensVals[0] == 2, mySensVals[1] == 4, и т.д.

Индексация массива начинается с 0. Это значит, что для массива с 10-тью элементами, индекс 9 будет последним:

 int myArray[10]={9,3,2,4,3,2,7,8,9,11};
 // myArray[9] последний элемент, содержит 11
 // myArray[10] это неверно возможно возвращение 
 //произвольного значения из области памяти не относящийся к массиву

Поэтому, необходимо быть внимательным при обращении к массивам. Обращение к элементу за пределами массива (когда указанный индекс больше, чем объявленный размер массива) приведет к чтению данных из ячейки памяти, использующейся для других целей. Считывание из этой области, вероятно, не приведет ни к чему, кроме получения неверных данных. Запись же в случайные области памяти - определенно плохая идея, и часто может приводить к не желаемым результатам, таким, как зависания или сбои в работе программы. Кроме того, такие ошибки трудно отыскать.

В отличие от BASIC или JAVA, компилятор Си не проверяет правильность индексов при обращении к элементам массива.

Присваиваем значение элементу массива:

mySensVals[0] = 10;

получаем значение элемента массива:

x = mySensVals[4];

Массивы и циклы FOR

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

int i;
for (i = 0; i < 5; i = i + 1) {
 Serial.println(myPins[i]);
}

Смотрите также:

PROGMEM

Объявление переменных


Справочник

Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.



Источник: http://arduino.cc/en/Reference/Array
Категория: Справочник | Добавил: magi (25.11.2014)
Просмотров: 3810 | Теги: Массив | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
Поиск
Вход на сайт
На правах рекламы

Мы переезжаем на сайт Arduino по-русски