Leírás
Egy tömb olyan változók gyűjteménye, amelyekhez indexszámmal lehet hozzáférni. Az Arduino IDE alatt lehetőségünk van a tömböket C++ nyelven deklarálni, ami nem túl egyszerű, de szerencsére az alap tömbök megadása az Arduino IDE alatt nem bonyolult.
Tömb deklarálása (létrehozása)
Az alábbi példák mutatják be, hogy milyen módszerek vannak egy tömb létrehozására (deklarálására):
A tömbök deklarálásakor megadhatja, hogy hány elemből álljon a tömb (a fenti példában a myInts egy 6 elemű tömb lesz), azonban nem szükséges megadnia a tömb elemeinek a számát, ha felsorolja a tömb elemeit (myPins), ebben az esetben a fordító automatikusan akkora tömböt hoz létre, ahány elemet felsoroltunk. Definiálhat tömböt az előző kettő módszer keverékével is (mySensVals). Vegye figyelembe, hogy egy char típusú tömb deklarálásánál az inicializáláshoz még egy elemre van szükség a szükséges null karakter megtartásához.
Egy tömb elérése
Minden tömbre igaz, hogy az elemeinek a számozása nullával indul és az utolsó elem száma a (tömb mérete)-1.
Ez azt is jelenti, hogy egy tíz elemmel rendelkező tömbben a kilencedik index az utolsó elem. Ennélfogva:
Ezért legyen óvatos a tömbök kezelésekor. Ha a legutolsó indexnél nagyobb számot ad meg, akkor a következő memóriaterület(ek)et fogja elérni. Ez egy érték kiolvasásakor még nem okoz általában nagy problémát, íráskor akár a program lefagyását is eredményezheti. Az ezekről a helyekről való olvasás valószínűleg nem sokat fog tenni, kivéve az érvénytelen adatokat. Az olyan hibákat, amely ebből következik általában nagyon nehéz megtalálni.
A BASIC-tól vagy a JAVA-tól eltérően a C ++ fordító nem ellenőrzi, hogy a tömb hozzáférése a deklarált tömb méretének törvényes határain belül van-e.
Érték hozzárendelése egy tömbhöz:
Érték lekérése tömbből:
Tömbök és a FOR ciklus
A tömbök kezeléséhez gyakran használnak FOR ciklust, ahol a ciklus számlálóját egyben a tömb indexének a megadására is fel lehet használni. Az alábbi példában egy tömb elemei kerülnek kiíratásra a sorors porton keresztül:
Példakód
A tömbök használatát demonstráló teljes programhoz nézze meg a Knight Rider példát az oktatóprogramok között.
Lásd még
String()
bool
boolean
byte
char
dupla
float
int
long
short
size_t
string
unsigned char
insigned int
unsigned long
void
word
PROGMEM