zurück weiter

C++ - Datenfelder (1)

G.Eichelsdörfer - Staatliche Technikerschule Weilburg

In vielen Programmiersprachen gibt es Datenfelder (Arrays), so auch in C++.

Ein Datenfeld besteht immer aus mehreren Elementen des gleichen Datentyps. Sie können in C++ Datenfelder aus Elementen vom Typ char, int, double, ... zusammensetzen. Es ist ebenso möglich Datenfelder aus gleichartigen Datenfeldern zu bilden.

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

3 -5 12 0 8

Alle diese Elemente des Datenfeldes 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++ dafür: Zahlen[0] = 3
In C++ beginnt das Positionszählen immer mit der Null. Die Zahl in eckigen Klammern ist der so genannte Index.

Weil das Datenfeld 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 definieren wir nun ein solches Datenfeld?

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

int Zahlen[5];

Der Typ des Datenfeldes besteht hier aus den Angaben int und [5], was kennzeichnet, dass es sich um ein Array für 5 Integerwerte handelt. Der Name des Arrays steht dazwischen, was ich als eher misslungene Syntax ansehe.

Kleiner Hinweis am Rande. In Java wäre eine Definition folgerichtiger möglich: int[5] Zahlen;

Ein Datenfeld aus Zeichen

Beispiel: char Str[46];

Das Array heißt Str und besteht aus 46 Daten des Typs "char". Die Indizes (Mehrzahl von Index) reichen von 0 bis 45.
Str[0] ist das 1. Zeichen. Str[14] ist das 15. Zeichen. Str[45] ist das 46. Zeichen. Str[46] gibt es nicht.
Der Zugriff auf einzelne Zeichen dieses Datenfeldes gestaltet sich genauso wie bei einem Objekt der Klasse std::string. Allerdings sind die Verwendungsmöglichkeiten eines std::string-Objektes vielfältiger und intuitiver.

Zugriffsbeispiele
syntaktisch richtig syntaktisch falsch
Str[5] = 'e'; Str[5] = 'Hallo!';
Str[7] = Str[i++]; Str = "Hallo!";
cout << "Das " << i << ". Zeichen in Str ist " << Zeichen[i-1]; Str[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 komplexer Zahlen können wir genauso gut zweidimensionale 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 definieren wir eine komplexe Zahl z: double z[2];
z[0] soll den Realteil, z[1] den Imaginärteil aufnehmen.

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;