Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

einleitung:arrays

Dies ist eine alte Version des Dokuments!




Arrays

Ein Array (auch „Feld“ genannt) kann man sich wie eine Tabelle vorstellen, die nummerierte Eintrage hat.

Platz Inhalt
0 3
1 1
2 7
3 8
4 2
5 1

In dieser Tabelle gibt es sechs Eintrage. An der 0. Stelle steht eine 3, an der 1. Stelle steht eine 1, usw. Wichtig ist, dass die Nummerierung bei 0 beginnt. Es kann auch zweidimensionale Arrays geben (z.B. um eine Tabelle aus x- und y-Koordinaten abzuspeichern), dreidimenstionale usw. Im Folgenden beschränken wir uns auf eindimensionale Arrays.

Deklaration und Zugriff

Um so ein Array bei dem Arduino anzulegen, muss folgender Code geschrieben werden:

int zahlen[] = {3,1,7,8,2,1};

Die Klammern [] stehen dafür, dass die Variable zahlen auf ein Array zeigt. Dass ist ein Speicher im Speicher. Das Schlüsselwort int steht dafür, dass das folgende Array nur Integer-Werte beinhaltet. Ein Array kann also nur einen Datentyp enthalten. Um ein Array mit Werten zu füllen, kann die Variante oben verwendet werden. Mit {3,1,7,8,2,1} werden die Zahlen der Reihe nach in des Array geschrieben und somit ein Array der Länge 6 erstellt. Achtung: Arrays sind statisch, das bedeutet, dass die Länge, nachdem es angelegt wurde, nicht mehr geändert werden kann.

Man muss jedoch nicht beim deklarieren gleich Werte angeben.

int zahlen[6];

Auch hier wird ein Array der Länge 6 erzeugt. Wenn man an dieser Stelle den Inhalt des Arrays auf dem Seriellen Monitor ausgibt, bekommt man Zahlen, die willkürlich aussehen. Dies liegt daran, dass an den jeweiligen Stellen im Speicher vorher andere Werte abgelegt wurden, die wir noch nicht überschrieben haben.

Auf den ersten Eintrag kann man wie folgt etwas schreiben:

zahlen[0] = 3

So kann an jede Stelle das Array geschrieben werden und auch überschrieben werden. Wenn ein Wert ausgelsen werden soll und gespeichert, dann kann man das wie folgt machen:

int x = zahlen[1]

Auf die letzte Stelle des Arrays kann man auch so zugreifen:

zahlen[zahlen.length]

In C++/Arduino wird euch der Compiler nicht daran hindern, auf einen Index zuzugreifen, der größer ist als die Länge des Arrays. Wenn ihr diese Stellen im Speicher überschreibt, die nicht zu eurem Array gehören, kann es zu unerwünschten Auswirkungen führen. In Java/Processing ist das anders: ihr bekommt einen Fehler beim Kompilieren.

Eine gute Zusammenstellung bekommt ihr auch noch hier: Array

einleitung/arrays.1524858177.txt.gz · Zuletzt geändert: 2018/04/27 21:42 von d.golovko