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:
Datentyp Arrayname[Anzahl];
int array[4];
Die Anzahl bestimmt, wie viel Elemente ein Array speichern kann.
Die Initialisierung von Arrays ähnelt der von den Variablen.
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.
int array[4] = {1, 2, 3, 4};
Der Zugriff auf den Inhalt eines Arrays erfolgt über die Schreibweise mit der eckigen Klammer.
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.
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:
struct strukturname {
Datentyp 01;
Datentyp 02;
...
Datentyp ??;
} strukturbezeichner;
Im Beispiel werden wir eine Struktur Erstellen die an eine persönliche Anschrift erinnern soll.
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".
#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