Es gibt grundsätzlich zwei Typen von Arrays:
Statische Arrays können natürlich auch mehrere Dimensionen (mehrdimensionale Arrays) haben, genauso wie dynamische. Arrays können bis zu 60 Dimensionen haben, aber meistens werden nicht mehr als drei oder vier Dimensionen gebraucht um die alltäglichen Probleme zu lösen.
Ein eindimensionales Array ist im Grunde eine Kette (Spalte oder auch Zeile) von Elementen mit fortlaufendem Index von 0 beginnend bis Anzahl der Elemente (n) minus 1
Ein eindimensionales Array (auch genannt Feld) ist ein Objekt, das sich aus mehreren Elementen, genannt Komponenten, vom selben Datentyp zusammensetzt.
Array deklarieren
Datentyp Arrayname [Anzahl_der_Elemente]; 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. Da durch die Definition eines Arrays der Compiler einen zusammenhängenden Speicherbereich für n Elemente reserviert. Damit der Compiler den erforderlichen Speicherplatz reservieren kann, muss die Anzahl der Arrayelemente zum Zeitpunkt der Kompilation bekannt und deshalb eine Konstanten sein. Es ist nicht möglich, die Größe eines Arrays während der Laufzeit des Programms über eine Variable festzulegen, oder gar zu verändern. Der Datentyp Array gehört zu den sogenannten zusammengesetzten Datentypen, da ein Array aus Elementen zusammengesetzt ist.
Bei der Definition eines Arrays muss darauf geachtet werden, dass seine Größe im Rahmen der zulässigen Speichergrenzen liegt. Unter DOS oder 16-bit-Windows lag die Obergrenze oft bei 64 KB oder weniger, wenn nicht spezielle Speichermodelle gewählt wurden. Die Obergrenze von 2 GB für globale Definitionen unter Win32 und dem C++Builder dürfte meist keine Einschränkung darstellen. Für lokale Definitionen liegt die Voreinstellung für die Obergrenze bei 1 MB
Wertzuweisungen
Arrayname [Indizierungsoperator] = Wert des Elements
i[0] = 15; i[1] = 10; i[2] = 6; i[3] = 777; i[4] = 54321;
Für den Computer ist die Zahl 0 auch ein Wert, somit fängt dieser stets bei 0 an zu zählen und der Index des letzten Elements lautet [4]
Steuerung durch for-Schleife
for (i=0;i<5;i=i+1) { cout << "Bitte geben Sie eine Zahl ein: "; cin >> variable[i]; }
Den Feldern werden systematische vom User eingegebene Werte übergeben. Dabei wird bei der Addressierung bei 0 (wert[0]) begonnen.
for (i=0;i<5;i=i+1) { cout << zahl[i]; }
Die gespeicherten Werte werden systematisch (Element für Element) ausgelesen und ausgegeben.
Um Arrays kopieren zu können, muss jedes Element einzeln übertragen werden (for-Schleife)
ziel[i] = quelle[i];
for(i = 0; i < 4; i=i+1) { y[i] = x [i]; }
Bei einem mehrdimensionalen Array können Werte nicht nur einer Dimension (Zeile), sondern mehreren übergeben werden. Die Anzahl der Dimensionen ergibt auch den entsprechenden Namen (zwei-, drei-, vier-, …, n-dimensionales Array. Ein mehrdiemensionales Array ist im Aufbau mit einer Matrix zu vergleichen. Es besitz Spalten und Zeilen durch die die Koordinate des Werts bestimmt wird.
Deklaration
Datentyp Arrayname [SPALTEN] [ZEILEN];
double i [5][4]; //Ein Array mit 5 Spalten und 4 Zeilen = 20 Elemente
Ein String wird in einem char - Array realisiert, damit können Wörter, Sätze und Texte gespeichert werden.
Deklaration eines char - Arrays
char Arrayname [Anzahl der Elemente] = Wert char name [5] = "Karl";
Um auch Texte in einem Array ablegen zu können, die kürzer sind als die Größe des Arrays, wird an seinem Ende eine 0 abgelegt. Dabei handelt es sich nicht um eine Ziffer '0', sondern um ein Nullbyte, das als '\0', oder als Zahlenkonstante 0 dargestellt wird. Deshalb muss das Array auch immer um ein Element mehr bestehen, als die tatsächliche Zeichenkette. Da C-Strings normale Arrays sind, können Sie auch deren Größe nicht während der Laufzeit ändern. Darum sollten Arrays so groß dimensioniert werden, dass der Text auch im schlechtesten Fall noch hineinpasst.