32 lines
2.8 KiB
Plaintext
32 lines
2.8 KiB
Plaintext
\b;Массивы
|
||
Массив - это в основном набор переменных того же типа и класса. Вы можете использовать н-ное количество массивов в языке CBOT, однако максимальный размер массива равен 9999 элементов. Вы должны использовать квадратные скобки \c;[]\n; после того, как объявили массив.
|
||
\c;
|
||
\s;int [ ] a; // целочисленный массив
|
||
\s;int a [12]; // целочисленный массив, где максимум 12 элементов
|
||
\s;string s[3]; // массив с тремя строчками
|
||
\s;float xy[][]; // двумерный массив плавающей запятой
|
||
\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; на массив. Это означает, что если вы измение элемент в массиве, то этот элемент будет измененным и в самой функции.
|
||
|
||
\t;См. также
|
||
\l;Язык CBOT\u cbot; и \l;Переменные\u cbot\type; и \l;категории\u cbot\category;.
|