Массивы (Arduino)

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

Способы создания массивов:

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);
}

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

Войти с помощью: