Tablica C

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.

ASTRAJA
0123456

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

Sposoby tworzenia tablicy

// Sposób 1
// tablica tworzona na stosie
int numbers[] = { 12, 2, 9, 22 };

// Sposób 2
// Utworzenie tablicy z 4 elementami, które mają wartość domyślną 0
// Przypisanie wartości do elementów tablicy
int numbers[4];
numbers[0] = 12;
numbers[1] = 2;
numbers[2] = 9;
numbers[3] = 22;

// Sposób 3 (dla zaawansowanych)
// Tablica tworzona na stercie (heap)
int* numbers = new int[4];

// Zwolnienie zaalokowanej pamięci
delete[] numbers;

Tablica stringów i char

char* imiona[] = { "Mark", "Anna", "John"};
char znaki[] = {'@', '!', 'z', 0}; //na koniec należy dodać 0

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

Długość tablicy oblicza się dzieląc rozmiar całej tablicy przez rozmiar pojedynczego elementu

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

//lub

char name[] = {"Leonard"};
int dlugoscTabChar = strlen(name);

Przy tablicach tworzonych na stercie obliczanie długości tablicy w ten sposób nie zadziała, ponieważ nazwa tablicy jest wskaźnikiem do miejsca w pamięci.

Tablica kończy się niewidzialnym znakiem \0.

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

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Scroll to Top