In vielen Programmiersprachen gibt es Daten-Arrays, so auch in C und C++.

Ein Array besteht aus mehreren Elementen des gleichen Datentyps. So gibt es in C/C++ Arrays aus Elementen vom Typ char, int, double, ... - man kann sogar Arrays aus gleichartigen Arrays zusammensetzen.

Ein int-Array könnte den Namen Zahlen tragen und z.B. aus folgenden Elementen bestehen:

3 -5 12 0 8

Alle diese Elemente des Arrays besitzen zunächst den gleichen Namen, sie unterscheiden sich allerdings in ihrer Position innerhalb des Arrays.

Die 3 steht an erster Stelle im Array Zahlen.
Wir schreiben in C/C++ dafür: Zahlen[0] = 3
In C/C++ beginnt das Positionszählen immer mit der Null. Die Zahl in eckigen Klammern ist der so genannte Index.

Weil das Array Zahlen aus 5 Elementen besteht und der erste Index immer 0 ist, ist der letzte Indexwert 4. Auf die letzte Zahl 8 im Array Zahlen greifen wir also zu mit Zahlen[4].


Wie deklarieren wir nun ein solches Array?

Im Falle des obigen Arrays Zahlen sieht die Deklaration so aus:


 int Zahlen[5];
Der Arraytyp besteht hier aus den Angaben int und [5], was kennzeichnet, dass es sich um ein Array aus 5 Integerwerten handelt. Der Name des Arrays steht dazwischen, was ich als eher misslungene Syntax ansehe.
Kleiner Hinweis am Rande. In Java sähe die Deklaration folgerichtiger aus: int[5] Zahlen;

Ein Array aus Zeichen

Beispiel:


 char Zeichen[46];
Das Array heißt Zeichen und besteht aus 46 Daten des Typs "char". Die Indizes (Mehrzahl von Index) reichen von 0 bis 45.

Zeichen[0]  ist das  1. Zeichen.
Zeichen[14] ist das 15. Zeichen.
Zeichen[45] ist das 46. Zeichen.
Zeichen[46] gibt es nicht.
Zugriffsbeispiele
syntaktisch richtig syntaktisch falsch
Zeichen[5] = 'e'; Zeichen[5] = 'Hallo!';
Zeichen[7] = Zeichen[i++]; Zeichen = "Hallo!";
printf("Das %i. Zeichen ist %c.",i,Zeichen[i-1]); Zeichen[6..9] = "Hall";

Ein Beispiel für eine komplexe Zahl

Eine komplexe Zahl besteht aus zwei Komponenten: z = Re(z) + i*Im(z)   oder einfacher geschrieben   z = Re + i*Im

Statt komplexen Zahlen können wir genausogut zweidimansionale Vektoren verwenden. Deren erste Koordinate bzw. erstes Element ist der Realteil Re, die zweite Koordinate bzw. das zweite Element ist der Imaginärteil Im.

Also deklarieren wir eine komplexe Zahl z:


 double z[2];
z[0] beinhaltet den Realteil, z[1] den Imaginärteil.

Unserem Array z können wir nun wie folgt die komplexe Zahl 12.6 - i*7.5 zuweisen.


 z[0] = 12.6;
 z[1] = -7.5;