Массив — это набор переменных, доступ к которым осуществляется по индексу. В данной статье будут рассмотрены одномерные массивы, а так же способы их создания и вывода элементов массива.
Способы создания массивов:
int arr_1[] = {1,3,25,18,44}; int arr_2[5] = {18,39,253,185,44}; char arr_3[6] = {"hello"};
В данном примере видно, что можно не указывать размер массива компилятор сам посчитает элементы и создаст массив соответствующего размера. Следует помнить, что при объявлении массива типа char, в нем необходимо место для хранения обязательного нулевого символа, поэтому размер массива должен быть на один символ больше, чем требует инициализируемое значение.
Массив может быть так же создан в процессе выполнения программы, в следующем примере показано как создать такой массив:
void setup(){ } int arr[100];// объявим массив, укажем кол-во элементов void loop(){ for(int i = 0; i < 100; i++){ // в массиве будет 100 элементов arr[i] = random(10000); // заполним массив случайными числами } }
Любой элемент массива может быть изменен в процессе выполнения программы, вот простой пример:
void setup(){ } int arr[5] = {11,58,25,63,78};// объявим массив, укажем кол-во элементов void loop(){ arr[0] = 0 }
Как видно в примере, содержимое элемента массива с ключом [0] было заменено.
Вывод элементов массива:
void setup(){ } int arr[] = {11,58,25,63,4567};// объявим массив, укажем кол-во элементов void loop(){ int arr[3]; // 63 }
В данном примере видно что элемент arr[3] содержит число 63, а не 25, так отсчет элементов массива начинается с 0.
Элементы массива можно вывести при помощи цикла for:
void setup(){ Serial.begin(9600); } int arr[] = {11,58,25,63,4567};// объявим массив, укажем кол-во элементов void loop(){ for(int i=0; i < 5; i++){ Serial.println(arr[i]); } }
Оператор sizeof удобно использовать при работе с массивами, особенно в тех случаях, когда размерность массива заранее неизвестна или может меняться:
void setup(){ Serial.begin(9600); } int arr[] = {11,58,25,63,4567};// объявим массив, укажем кол-во элементов char arr_char[]= "arduino"; int a,b; void loop (){ /* Оператор sizeof возвращает количество байт, занимаемых типом переменной, либо количество байт, занимаемых массивом. */ a = sizeof(arr)/sizeof(int);// вывод 5 b = sizeof(arr_char)-1;// вывод 7 for(int i=0; i < sizeof(arr) / sizeof(int); i++) { // цикл for выведет поочередно все элементы массива Serial.println(arr[i]); } Serial.println(a); Serial.println(b); }