\b;Matrizes
Uma matriz é basicamente uma coleção de variáveis do mesmo tipo ou classe. Você pode usar matrizes de N dimensões na linguagem CBOT. Cada dimensão é limitada a 9999 elementos. Você deve usar colchetes \c;[]\n; depois do tipo ou nome da variável para declarar uma matriz.
\c;
\s;int    [ ] a;   // uma matriz de int
\s;int    a [12];  // uma matriz de int limitada a 12 elementos
\s;string s[3];    // uma matriz de 3 strings
\s;float  xy[][];  // uma matriz bidimensional de floats
\n;
Na verdade quando o interpretador CBOT encontra uma declaração de matriz, ele apenas cria uma  \l;referência\u cbot\pointer; \c;\l;nula\u cbot\null;\n;:
\c;
\s;int a[5];  // a é agora uma referência nula
\n;
Assim que você coloca valores na matriz, os elementos são criados e a referência é inicializada.
\c;
\s;a[2] = 213;  // a aponta para
\s;             // 3 elementos [0], [1] e [2]
\n;
Depois dessa operação, \c;a\n; contém uma referência para os elementosda matriz. Os elementos \c;[0]\n; e \c;[1]\n; são criados porém não inicializados porque uma matriz não pode conter elementos vazios.
A instrução \c;\l;sizeof\u cbot\sizeof;\n; permite a você obter a quantidade de elementos contidos na matriz.

Quando uma matriz é declarada com um tamanho máximo, o programa irá parar assim que houver um acesso além do tamanho máximo da matriz. Nenhum erro é sinalizado durante a compilação, mesmo que o erro seja óbvio:
\c;
\s;{
\s;	int a[5];
\s;	a[7] = 123;  // nenhum erro ao compilar
\s;	             // porém com erros ao executar
\s;}
\n;
Se você passar uma matriz como parâmetro para uma \l;função\u cbot\function;, a função somente recebe uma \l;referência\u cbot\pointer; da matriz. Isto significa que se você modificar um elemento na função, o elemento da matriz que foi passada para a função será modificado.

\b;Sintaxe de inicialização
Você pode inicializar uma nova matriz usando a seguinte sintaxe:
\c;
\s;tipo nomeMatriz[] = { valor0, valor1, valor2, ..., valorN };
\n;
Exemplos:
\c;
\s;int numeros[] = { 10, 20, 30 };
\s;MinhaClasse objetos[] = { new MinhaClasse(1), new MinhaClasse(2) };
\n;

\t;Veja também
\l;Programação\u cbot;, \l;tipos\u cbot\type; e \l;categorias\u cbot\category;.
