\b;Tablice
Tablica jest zestawem obiektów tego samego typu lub klasy. W języku CBOT można używać N wymiarowych tablic. Każdy wymiar jest ograniczony do 9999 elementów. Aby zadeklarować tablicę, należy użyć nawiasów kwadratowych \c;[]\n; po nazwie zmiennej lub nazwie typu.
\c;
\s;int    [ ] a;   // an array of int
\s;int    a [12];  // an array of int limited to 12 elements
\s;string s[3];    // an array of 3 strings
\s;float  xy[][];  // a 2 dimensionnal array of floats
\n;
W rzeczywistości, gdy interpreter języka CBOT napotka deklarację tablicy, tworzy jedynie \l;wskażnik\u cbot\pointer; \c;\l;null\u cbot\null;\n;:
\c;
\s;int a[5];  // jest teraz wskaźnikiem null
\n;
Z chwilą wstawienia wartości do tablicy, tworzone są elementy i inicjalizowany jest wskaźnik:
\c;
\s;a[2] = 213;  // tablica a wskazuje na
\s;             // 3 elementy: [0], [1] i [2]
\n;
Po tej operacji, zmienna \c;a\n; zawiera wskaźnik do elementów tablicy. Elementy \c;[0]\n; i \c;[1]\n; są tworzone, ale nie inicjalizowane, gdyż tablica nie może zawierać pustych elementów. Instrukcja \c;\l;sizeof\u cbot\sizeof;\n; umożliwia sprawdzenie liczby elementów tablicy.

Gdy określony jest rozmiar maksymalny deklarowanej tablicy, program zatrzyma się w przypadku próby dostępu poza tablicę. Błąd ten nie jest sygnalizowany podczas kompilacji, nawet jeśli jest oczywisty:
\c;
\s;{
\s;	int a[5];
\s;	a[7] = 123;  // nie ma błędu podczas kompilacji
\s;	             // ale pojawia się podczas działania programu
\s;}
\n;
Jeśli tablica przekazywana jest jako parametr \l;funkcji\u cbot\function;, funkcja otrzymuje jedynie \l;wskaźnik\u cbot\pointer; do tablicy. Oznacza to, że w przypadku modyfikacji elementu tablicy wewnątrz funkcji, zostanie w rzeczywistości zmodyfikowany element tablicy przekazanej funkcji jako parametr.

\b;Initialization syntax
You can initialize a new array using the following syntax:
\c;
\s;type arrayName[] = { value0, value1, value2, ..., valueN };
\n;
Przykłady:
\c;
\s;int numbers[] = { 10, 20, 30 };
\s;MyClass objects[] = { new MyClass(1), new MyClass(2) };
\n;

\t;Zobacz również
\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;.
