|
Integer: A[0], A[1], A[2], A[3], ..., A[98], A[99]
Wie man sieht, werden die Komponenten der Array-Variablen A
mit dem Index I durch A[I] bezeichnet. Anstelle des Indexwertes
kann, abhängig von Indextyp, auch ein beliebiger Ausdruck
stehen, z. B.: A[i + j].
Zwei Array-Variablen werden als gleich bezeichnet, wenn sie
vom selben Typ sind (d. h. identische Vereinbarung besitzen) und
alle Komponenten paarweise gleich sind (d. h. A = B, wenn A[i] =
B[i] für alle i des Indexbereichs).
Als Komponententyp eines Array kann auch wieder ein Arraytyp
verwendet werden --> mehrdimensionale Arrays. Die Vereinbarung
wird in den Programmiersprachen zu einer verkürzten Vereinbarung
zusammengezogen:
int A [100][50]
Verbund (Record, Structure)
Im Gegensatz zu Array besitzen Verbunde Komponenten
unterschiedlichen Typs und stellen damit die flexibelste
Datenstruktur dar. Ein Record besteht aus einer festen Anzahl von
Komponenten, wobei jede Komponente mit einem eigenen Namen
bezeichnet wird, die Vereinbahrung stellt sich damit
folgendermaßen dar:
struct Recordbezeichner
{
Komponententyp Komponentenbezeichner;
Komponententyp Komponentenbezeichner;
Komponententyp Komponentenbezeichner;
Komponententyp Komponentenbezeichner;
};
Man kann nach der schließenden Klammer auch gleich noch eine
Variable deklarieren. Beispiele:
struct Kundensatz
{
int Kundennummer;
char Name[20];
char Vorname [20];
float Umsatz;
} Kunde;
struct Datumstyp
{
int Tag;
int Monat;
int Jahr;
} Datum;
Deklarier man die Variablen getrennt von der Record-Definition, sieht das
so aus:
sruct Recordbezeichner Variablenbezeichner;
Als Record-Komponenten können wieder beliebige
Datentypen stehen, also auch wieder Array- oder Recordtypen.
Umgekehrt kann auch ein Array Records als Komponenten besitzen
(z. B. ein Array mit Komponenten vom oben gezeigten Kundentyp).
Auf einzelne Komponenten des Records wird über die
Kombination des Recordnamens und der gewünschten
Recordkomponente zugegriffen. Als Trennzeichen zwischen den Namen
wird ein Punkt verwendet (hier gibt es Unterschiede bei den
einzelnen Programmiersprachen), z. B.:
Datum.Tag oder Kunde.Name
Auch hier kann - je nach Aufbau des Records - eine mehrstufige
Referenz notwendig sein.
|
|
|