Bisher habe ich mich bei den speicherorientierten Strukturelementen auf einfache Datentypen beschränkt. Bei den Aufgaben wurden lediglich ganze Zahlen (char, short, int, long) bzw. Fließkommazahlen (float, double, long double) besprochen. In diesem Kapitel erfahren Sie nun etwas über zusammengesetzte Datenstrukturen, kurz Arrays.
11 Arrays
Mit Arrays haben Sie die Möglichkeit, eine geordnete Folge von Werten eines bestimmten Typs abzuspeichern und zu bearbeiten. Arrays werden auch als Vektoren, Felder oder Reihungen bezeichnet.
11.1 Arrays deklarieren 

Die Syntax zur Deklaration eines Arrays sieht wie folgt aus:
Datentyp Arrayname[Anzahl_der_Elemente];
Als Datentyp geben Sie an, von welchem Datentyp die Elemente des Arrays sein sollen. Der Arrayname ist frei wählbar, mit denselben Einschränkungen für Bezeichner wie bei Variablen. Mit Anzahl_der_Elemente wird die Anzahl der Elemente angegeben, die im Array gespeichert werden können. Man spricht dabei auch vom Indexwert. Ein Array, das aus Elementen unterschiedlicher Datentypen besteht, gibt es in C nicht.
Angesprochen wird das gesamte Array mit allen Komponenten über den Array-Namen. Die einzelnen Elemente eines Arrays werden durch den Array-Namen und einen Indexwert (in eckigen Klammern) verwendet. Der Indexwert selbst wird über eine Ordinalzahl (Ganzzahl) angegeben und fängt bei null an zu zählen. Anhand der folgenden Zeile wird ein Array jetzt näher untersucht:
int i[5];
Durch diese Deklaration wird Platz für fünf Variablen im Array i vom Datentyp int im Speicher reserviert. In diesem Array können somit fünf Integerwerte gespeichert werden (siehe Abbildung 11.1).
Wie Sie in der Abbildung sehen, wurde ein Array vom Typ int deklariert. Mit dieser Deklaration wurde automatisch auch Speicherplatz für fünf int-Werte reserviert. Bei vier Bytes für eine int-Variable (je nach System) würden 20 Bytes im Arbeitsspeicher des Rechners belegt werden. Demnach benötigt ein Array wie z. B. double abc[2000] 16.000 Bytes. Alte C-Compiler hatten bei großen Arrays Probleme mit der Speicherverwaltung, da der Speicher auf 64 KB beschränkt war. (Es gab natürlich Tricks, diese Schwierigkeiten zu umgehen, darauf soll hier aber nicht näher eingegangen werden.) Bei modernen 32-Bit-Compilern dürften Sie in der Praxis wohl nie an irgendwelche Grenzen stoßen.
Abbildung 11.1 Anordnung eines Arrays mit fünf Werten
Merke |
Die Größe eines Arrays muss zum Zeitpunkt der Übersetzung in der Regel bekannt sein. In C gibt es keine wachsenden Arrays. Natürlich gibt es auch hierzu wieder die Ausnahme von der Regel. Näheres dazu finden Sie in Kapitel 12, »Zeiger (Pointer)«. |
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.