Suche
Suche Menü

Strukturen

Beim Programmieren verwenden wir ständig Variablen. Versuchen wir einmal diese zu kategorisieren. Wir verwenden Variablen für das Zählen von Schleifendurchläufe, um Berechnungen durchzuführen, um einen Zustand zu vermerken und natürlich um Informationen zwischenzuspeichern.

Gehen wir beim Letzteren nun etwas mehr ins Detail. Wenn wir zum Beispiel die Adresse von einer Person in Variablen speichern, so distanzieren sich diese Daten von der Bedeutung und Verwendung, im Vergleich zu anderen Variablen. Wir wollen diese Daten deshalb gruppieren. Um dies im Quellcode zu verdeutlichen, könnte man einen Prefix für die Variablennamen wählen. Alle Variablen, welche die Adresse darstellen, beginnen mit dem Prefix adr.

char adrName[50];
char adrStrasse[100];
char adrPlz[10];
char adrStadt[50];

Somit gibt es zwar ein Erkennungszeichen, die Daten befinden sich aber zusammenhaltslos auf der gleichen Ebene wie die anderen Variablen. Eine Bündelung solcher Daten erhält man mit Strukturen, englisch structs. Wir beginnen wie immer mit einem Schlüsselwort und leiten eine Struktur mit struct ein. Danach wird der Name der Struktur definiert, zum Beispiel adresse. In dem folgendem Block { } werden nun alle Variablen definiert.

struct adresse {
	char name[50];
	char strasse[100];
	short hausnummer;
	long plz;
	char stadt[50];
};

Um mit den Variablen in der Struktur arbeiten zu können, kann man nun ein Objekt bzw. eine Variable der Struktur erzeugen. Hierfür schreibt man wieder struct, danach den Namen der Struktur und anschließend den Namen der Variablen. Der Zugriff auf die Elemente einer Struktur erfolgt über die Variable der Struktur, einem Punkt und anschließend der Variablen innerhalb der Struktur.

// Variable der Struktur erstellen
struct adresse adresseKurt;

// Zugriff auf die Elemente
strcpy(adresseKurt.name, "Kurt Kanns");
strcpy(adresseKurt.strasse, "Kannichweg");
adresseKurt.hausnummer = 23;
adresseKurt.plz = 45678;
strcpy(adresseKurt.stadt, "Kannstadt");

printf("Name: %s\n", adresseKurt.name);

Name: Kurt Kanns