rows of wooden seats in a large auditorium

Arrays und Structs

Wenn man in C/C++ oder Arduino mehrere zusammengehörende Werte speichern will, stößt man schnell auf Arrays und Structs.
Arrays eignen sich hervorragend, um viele Daten gleichen Typs – etwa eine Liste von Zahlen oder Sensorwerten – kompakt zu verwalten.
Structs hingegen erlauben es, verschiedene Datentypen logisch unter einem Dach zu bündeln, zum Beispiel die Daten eines Sensors mit Name, Messwert und Status.

Besonders spannend wird es, wenn man Arrays von Structs anlegt: So kann man ganze „Sammlungen“ komplexer Objekte speichern und flexibel verarbeiten – etwa mehrere Motoren, LEDs oder Sensoren in einem Arduino-Projekt.


1. Arrays

Ein Array ist eine Sammlung von Werten des gleichen Typs, die unter einem Namen gespeichert werden.

Beispiel:

int zahlen[5]; // Array für 5 ganze Zahlen
zahlen[0] = 10; // erstes Element
zahlen[1] = 20; // zweites Element

int zahlen[5] = {10, 20, 30, 40, 50};  // oder geich initalisieren

Wichtig:

  • Indizes beginnen bei 0.
  • zahlen[5] hat also Elemente von zahlen[0] bis zahlen[4].

2. Structs

Ein Struct (Struktur) ist ein Datentyp, der verschiedene Werte zusammenfasst, die logisch zusammengehören.

Beispiel:

struct Person {
  String name;
  int alter;
  float groesse;
};

Jetzt kannst du Variablen dieses Typs erstellen:

Person p1;
p1.name = "Anna";
p1.alter = 25;
p1.groesse = 1.70;

3. Arrays von Structs

Du kannst auch Arrays von Structs erstellen, um mehrere Objekte zusammen zu speichern.

Beispiel:

Person personen[3]; // Array für 3 Personen

personen[0].name = "Anna";
personen[0].alter = 25;
personen[0].groesse = 1.70;

personen[1].name = "Ben";
personen[1].alter = 30;
personen[1].groesse = 1.80;

personen[2].name = "Clara";
personen[2].alter = 22;
personen[2].groesse = 1.65;

Oder gleich beim Erstellen initialisieren:

Person personen[3] = {
  {"Anna", 25, 1.70},
  {"Ben", 30, 1.80},
  {"Clara", 22, 1.65}
};

4. Zugriff

  • Einzelnes Element: personen[1].name"Ben"
  • Mit Schleife über Array iterieren:
for(int i = 0; i < 3; i++){
  Serial.println(personen[i].name);
}

Nach oben scrollen