colobot-data/help/P/cbot/array.txt.bak

32 lines
1.9 KiB
Plaintext
Raw Normal View History

\b;Tablice
Tablica jest zestawem obiekt<6B>w tego samego typu lub klasy. W j<>zyku CBOT mo<6D>na u<>ywa<77> N wymiarowych tablic. Ka<4B>dy wymiar jest ograniczony do 9999 element<6E>w. Aby zadeklarowa<77> tablic<69>, nale<6C>y u<>y<EFBFBD> nawias<61>w kwadratowych \c;[]\n; po nazwie zmiennej lub nazwie typu.
\c;
\s;int [ ] a; // tablica typu int
\s;int a [12]; // tablica typu int ograniczona do 12 element<6E>w
\s;string s[3]; // tablica 3 element<6E>w typu string
\s;float xy[][]; // 2 wymiarowa tablica typu float
\n;
W rzeczywisto<74>ci, gdy interpreter j<>zyka CBOT napotka deklaracj<63> tablicy, tworzy jedynie \l;wska<6B>nik\u cbot\pointer; \c;\l;null\u cbot\null;\n;:
\c;
\s;int a[5]; // jest teraz wska<6B>nikiem null
\n;
Z chwil<69> wstawienia warto<74>ci do tablicy, tworzone s<> elementy i inicjalizowany jest wska<6B>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<6B>nik do element<6E>w tablicy. Elementy \c;[0]\n; i \c;[1]\n; s<> tworzone, ale nie inicjalizowane, gdy<64> tablica nie mo<6D>e zawiera<72> pustych element<6E>w. Instrukcja \c;\l;sizeof\u cbot\sizeof;\n; umo<6D>liwia sprawdzenie liczby element<6E>w tablicy.
Gdy okre<72>lony jest rozmiar maksymalny deklarowanej tablicy, program zatrzyma si<73> w przypadku pr<70>by dost<73>pu poza tablic<69>. B<><42>d ten nie jest sygnalizowany podczas kompilacji, nawet je<6A>li jest oczywisty:
\c;
\s;{
\s; int a[5];
\s; a[7] = 123; // nie ma b<><62>du podczas kompilacji
\s; // ale pojawia si<73> podczas dzia<69>ania programu
\s;}
\n;
Je<EFBFBD>li tablica przekazywana jest jako parametr \l;funkcji\u cbot\function;, funkcja otrzymuje jedynie \l;wska<6B>nik\u cbot\pointer; do tablicy. Oznacza to, <20>e w przypadku modyfikacji elementu tablicy wewn<77>trz funkcji, zostanie w rzeczywisto<74>ci zmodyfikowany element tablicy przekazanej funkcji jako parametr.
\t;Zobacz r<>wnie<69>
\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;.