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 indeksu | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
Element | L | E | G | N | I | C | A |
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] | Kolumna0 | Kolumna1 | Kolumna2 |
Wiersz0 | array1 [0][0] = 4 | array1 [0][1] = 5 | array1 [0][2] = 2 |
Wiersz1 | array1 [1][0] = 9 | array1 [1][1] = 1 | array1 [1][2] = 0 |
Serial.print(array1[1][0]); //9 ----Wiersz 1, Kolumna 0