Tablice w Arduino

Tablica jednowymiarowa

Tablica może zawierać wiele danych tego samego typu. Każda wartość zapisana w tablicy ma swój numer porządkowy (indeks) dzięki czemu można na nich przeprowadzać wiele operacji za pomocą pętli.

Indeksowanie tablicy zaczyna się od 0.

Nr indeksu0123456
ElementLEGNICA

Długość tablicy (ilość elementów n) musi być określona podczas jej tworzenia.

Inicjalizowanie tablicy

// Sposób 1. 
int numbers[] = {12, 2, 9, 22}; //tablica tworzona na stosie (stack)
// Sposób 2.
int numbers[4]; 
numbers[0] = 12;
numbers[1] = 2;
numbers[2] = 9;
numbers[3] = 22;
// Sposób 3.
int* numbers = new int[4];  //tablica tworzona na stercie (heap)
delete[] numbers;           // Zwolnienie zaalokowanej pamięci

Nadpisywanie lub pobieranie wartości z tablicy następuje poprzez odwołanie do tablicy i podanie numeru indeksu.

numbers[0] = 32;
Serial.print(numbers[0]);  //32

Obliczanie długości tablicy

int len = sizeof(numbers)/sizeof(numbers[0]);

Przy tablicach tworzonych na stercie to nie zadziała, ponieważ nazwa tablicy jest wskaźnikiem do miejsca w pamięci.

Często w C++ należy określać wielkość tablicy manualnie.

static const int numberSize = 4;
int numbers[numberSize];

W c++ 11 można stworzyć tablicę i pobrać jej rozmiar w następujący sposób:

#include <array>
std::array<int, 5> myarray;
int arrsize = myarray.size();

Tablica dwuwymiarowa (matrix)

int array1[wiersze][kolumny];

Przykład tablicy dwuwymiarowej

int array1[2][3] = {{4, 5, 2},
                    {9, 1, 0}};
array1[2][3]Kolumna0Kolumna1Kolumna2
Wiersz0array1 [0][0] = 4array1 [0][1] = 5array1 [0][2] = 2
Wiersz1array1 [1][0] = 9array1 [1][1] = 1array1 [1][2] = 0
Serial.print(array1[1][0]);  //9 ----Wiersz 1, Kolumna 0

Leave a Comment

Scroll to Top