Kapitel 13 Arrays
Bisher wurden die speicherorientierten Strukturelemente 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.
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.
13.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, bestehend aus Elementen unterschiedlicher Datentypen, gibt es in C nicht.
Angesprochen wird das gesamte Array mit allen Komponenten über den Arraynamen. Die einzelnen Elemente eines Arrays werden durch den Arraynamen 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 13.1).
Wie Sie in der Abbildung sehen können, 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] 16000 Bytes. Alte C-Compiler hatten mit großen Arrays Probleme bei 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.
 Hier klicken, um das Bild zu Vergrößern
Abbildung 13.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 in Kapitel 14, Zeiger (Pointer).
|
|