Arrays und Strukturen

Arrays und Strukturen werden für die Datenspeicherung und der strukturierten Weiterverarbeitung eingesetzt.


Arrays (Tabellen)

Ein Array ist eine Kombination mehrerer Variablen vom gleichen Typ. Die einzelnen Elemente des Array werden über ihre Indexnummer angesprochen.

Die Deklaration des Array folgt der Syntax:

Syntax von Arrays

Datentyp Arrayname[Anzahl];
Deklaration

int array[4];

Die Anzahl bestimmt, wie viel Elemente ein Array speichern kann.


Die Initialisierung von Arrays ähnelt der von den Variablen.

Initialisierung

array [0] = 1;
array [1] = 2;
array [2] = 3;
array [3] = 4;

Die Zahl in den eckigen Klammern steht für die Indexnummer. Angefangen zu zählen wird immer bei 0. Der Index 0 ist das erste Element. Der Index 3 steht für das vierte Element.


Auch zulässig wäre die Schreibweise, bei der die Deklaration und Initialisierung in einer Anweisung erfolgen. Dabei werden die Elemente in geschweiften Klammern angegeben.

Deklaration und Initialisierung

int array[4] = {1, 2, 3, 4};

Der Zugriff auf den Inhalt eines Arrays erfolgt über die Schreibweise mit der eckigen Klammer.

Zugriff auf Inhalt

int array[4] = {1, 2, 3, 4};
printf("Wert: %i", array[2]);

Der Zugriff über den Index 2 gibt uns das dritte Element aus.


Mehrdimensionale Arrays

Arrays können auch mehrdimensional erstellt werden.

Zweidimensionale Arrays kann man sich wie eine Tabelle vorstellen, indem der erste Wert für die Zeile und der zweite Wert für die Spalte stehen.

Zweidimensionales Array

int array[2][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}};
printf("Wert: %i", array[1][3]);

Der erste Wert steht für die Zeile und der zweite Wert für die Spalte.

1 2 3 4
5 6 7 8

Bei der Initialisierung wird als Erstes die Anzahl der Zeilen und als Zweites die Anzahl der Spalten definiert. Also haben wir im Beispiel eine Tabelle mit "2" Zeilen und "4" Spalten erstellt. Die Abfrage der Werte erfolgt ebenfalls in der Reihenfolge: zuerst Zeile, dann Spalte, aber unter Angabe der Indexnummer.

In der nächsten Dimension könnte man einen Würfel in 3D erstellen. Überhaupt können Arrays auf diese Weise über theoretisch unendlich viele Dimensionen erweitert werden.


Strukturen struct

Bei Strukturen handelt es sich um Gruppierungen von meist unterschiedlichen Datentypen.

Die allgemeine Syntax von Strukturen ist:

Syntax von Strukturen

struct strukturname {
 Datentyp 01;
 Datentyp 02;
  ...
 Datentyp ??;
} strukturbezeichner;

Im Beispiel werden wir eine Struktur Erstellen die an eine persönliche Anschrift erinnern soll.

Struktur

struct adresse {
 char vorname [20];
 char nachname [20];
 long postleitzahl;
 char wohnort [20];
} anschrift;

Alle Daten wurden in einer Struktur zusammengefasst, die wir "adresse" genannt haben. Der Inhalt der Struktur wird in geschweiften Klammern angegeben. Am Ende der Struktur wird nach der geschweiften Klammer der "Bezeichner" angegeben.

Die Initialisierung erfolgt wie bei normalen Variablen, der Zugriff erfolgt über den "Punktoperator".

Struktur Beispiel

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct adresse {
 char vorname [20];
 char nachname [20];
 long postleitzahl;
 char wohnort [20];
} anschrift;

int main(void) {
 struct adresse person1;
 strcpy(person1.vorname, "Hugo");
 strcpy(person1.nachname, "Schmidt");
 person1.postleitzahl = 12345;
 strcpy(person1.wohnort, "Berlin");
 printf("%s, %s, %ld, %s\n",person1.vorname, person1.nachname, person1.postleitzahl, person1.wohnort);
 return EXIT_SUCCESS;
}

Weiter mit Verzweigungen