void setup() {
// put your setup code here, to run once:
}
void massiv() {
// Указываем количество ячеек
byte myInts[6];
//Указываем количество ячеек, компилятор сам посчитает их количество
int myPins[] = {2, 4, 8, 3, 6,};
// Указываем то и то, количчество ячеек в [] должно совпадать с {} или быть больше!
float Sens[3] = {0.2, 0.4, -8.5};
// Храним символы
char message[6] = {'h', 'e', 'l', 'l', 'o'};
// Размеры
#define arr1_size 10
const byte arr2_SIZE = 30;
byte arr3_size = 30;
// Массивы
int arr0[5];
int arr1[arr1_size];
int arr2[arr2_size];
//int arr3[arr3_size]; // Приведет к ошибке!!
// первый элемент массива myInts равен 50
myInts[0] = 50;
// записать в ячейку 3 массива myPins
// значение элемента 0 массива miIntns
myPins[3] = myInts[0];
// размер массива можно вычислить через sizeof, но есть нюанс, что сдесь делают немцы с фотопленкой?
/* sizeof по умолччаниию считает данные в массиве по байтам, значчит массивы с другими типами данных будут считатся неправильно.
чтобы этого избежать можно использовать формулу (sizeof(arr)/sizeof(arr[0]))
*/
// Двумерный массив, 5 строк 10 столбцов
byte myArray[5][10];
// Матрица 3х4
byte myMatrix[][4] = {
{10, 11, 12, 13},
{14, 15, 16, 17},
{18, 19, 20, 21},
};
// Матрица 2х3
byte myTable[][3] = {{10, 11, 12}, {13, 14, 15}}
// меняем 12 на 20, ячейка 0,2
myMatrix[0][2] = 20;
memset(buf,val,len); // заполнить байтовый массив buf длинной len значением val
memcmp(buf1,buf2,len); // Сравнить массивы buf1 и buf2 на длинну len. вернет 0 если массивы одинаковы
memcpy(dest,src,len) // скопировать массив scr в массив dest на длинну len
byte scr[5] = {1, 2, 3, 4, 5};
// scr == {1, 2, 3, 4, 5}
byte dst[5]; // "Пустой" массив
memset(dst,123,5); // Заполнить dst значением 123
// dst == {123, 123, 123, 123, 123}
// сравнить
Serial.println(memcmp(scr,dst,5) == 0); // false
// Скопировать из scr в dst
memcpy(dst, scr, 5);
// dst == {1, 2, 3, 4, 5}
// сравнить
Serial.println(memcmp(scr,dst,5) == 0); // false
}
}