\b;Массивы
Массив - это в основном набор переменных того же типа и класса. Вы можете использовать н-ное количество массивов в языке CBOT, однако максимальный размер массива равен 9999 элементов. Вы должны использовать квадратные скобки \c;[]\n; после того, как объявили массив.
\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;
На самом деле, когда компилятор CBOT встречает объявление массива, то он просто создает \c;\l;null\u cbot\null;\n; \l;ссылку\u cbot\pointer;:
\c;
\s;int a[5];  // просто пустая ссылка
\n;
Как только вы поместите значения в массив, элементы создаются и ссылки инициализируются:
\c;
\s;a[2] = 213;  // указывает на
\s;             // три элемента [0], [1] и [2]
\n;
После этой операции, \c;a\n; содержит ссылки на элементы массива. Элементы \c;[0]\n; и \c;[1]\n; созданы, однако не инициализированы, т.к. они пусты. Инструкция \c;\l;sizeof\u cbot\sizeof;\n; позволяет получить число элементов, хранящихся в массиве.

Если массив объявлен с максимальным размером, то программа остановится, как только доступ к нему выйдет за его рамки(т.е. кол-во элементов+N). При компиляции ошибки не возникнет, даже если она очевидна:
\c;
\s;{
\s;	int a[5];
\s;	a[7] = 123;  // нет ошибки при компиляции
\s;	             // однако ошибка при выполнении
\s;}
\n;
Если вы передаете \l;функции\u cbot\function; массив в качестве параметра, то функция получает только \l;ссылку\u cbot\pointer; на массив. Это означает, что если вы измение элемент в массиве, то этот элемент будет измененным и в самой функции.

\b;Синтакс инициализации
Вы можете инициализировать новый массис используя следующий синтакс:
\c;
\s;type arrayName[] = { value0, value1, value2, ..., valueN };
\n;
Примеры:
\c;
\s;int numbers[] = { 10, 20, 30 };
\s;MyClass objects[] = { new MyClass(1), new MyClass(2) };
\n;

\t;См. также
\l;Программирование\u cbot;, \l;типы\u cbot\type; и \l;категории\u cbot\category;.
