array

Beschreibung

Ein Array ist eine Sammlung von Variablen, auf die mit einer Indexnummer zugegriffen wird. Arrays in der Programmiersprache C ++, in der Arduino-Skizzen geschrieben sind, sind zwar kompliziert, aber die Verwendung einfacher Arrays ist relativ unkompliziert.

Array erstellen / deklarieren

Alle folgenden Methoden sind gültige Methoden zum Erstellen (Deklarieren) eines Arrays.

int myInts[6]; int myPins[] = {2, 4, 8, 3, 6}; int mySensVals[6] = {2, 4, -8, 3, 2}; char message[6] = "hello";
  • Du kannst ein Array deklarieren, ohne es wie in myInts initialisieren zu müssen.
  • In myPins deklarieren wir ein Array, ohne explizit eine Größe zu wählen. Der Compiler zählt die Elemente und erstellt ein Array der entsprechenden Größe.
  • Schließlich können wir das Array wie in mySensVals sowohl initialisieren als auch skalieren.
  • Beachte, dass beim Deklarieren eines Arrays vom Typ char ein weiteres Element als Initialisierung erforderlich ist, um das erforderliche Nullzeichen zu enthalten.

Zugriff auf ein Array

Arrays sind nullindiziert, das heißt, bezogen auf die Array-Initialisierung oben, befindet sich das erste Element des Arrays am Index 0.

mySensVals[0] == 2, mySensVals[1] == 4, and so forth.

Das bedeutet auch, dass in einem Array mit zehn Elementen der Index neun das letzte Element ist. Daher:

int myArray[10]={9, 3, 2, 4, 3, 2, 7, 8, 9, 11}; // myArray[9] enthält 11 // myArray[10] ist ungültig und enthält zufällige Informationen (andere Speicheradresse)

Aus diesem Grund solltet du beim Zugriff auf Arrays vorsichtig sein. Beim Zugriff auf das Ende eines Arrays (mit einer Indexnummer, die größer ist als die von dir deklarierte Arraygröße - 1), wird aus dem Speicher gelesen, der für andere Zwecke verwendet wird. Das Lesen an diesen Orten wird wahrscheinlich nicht viel bewirken, außer ungültige Daten liefern. Das Schreiben in zufällige Speicherorte ist definitiv eine schlechte Idee und kann oft zu unglücklichen Ergebnissen wie Abstürzen oder Programmstörungen führen. Dies kann auch ein schwieriger Fehler sein.

Im Gegensatz zu BASIC oder JAVA überprüft der C ++ - Compiler nicht, ob der Array-Zugriff innerhalb der zulässigen Grenzen der von Ihnen angegebenen Array-Größe liegt.

So weist du einem Array einen Wert zu:

mySensVals[0] = 10;

So rufst du einen Wert aus einem Array ab:

x = mySensVals[4];

Arrays und FOR-Schleifen

Arrays werden oft innerhalb von Schleifen bearbeitet, wobei der Schleifenzähler als Index für jedes Array-Element verwendet wird. Wenn du beispielsweise die Elemente eines Arrays über den seriellen Anschluss ausgeben möchtest, kannst du Folgendes tun:

for (byte i = 0; i < 5; i = i + 1) { Serial.println(myPins[i]); }

Beispielcode

Ein vollständiges Programm, das die Verwendung von Arrays demonstriert, findest du im (Knight Rider-Beispiel) des (Tutorials).

Siehe Auch

Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.