Ein Array * (engl.: Anordnung, Aufstellung, Reihe, Reihung, Feld, Bereich) ist der Sammelbegriff für eine Anordnung, Aufstellung, Reihe von gleichen Elementen in festgelegter Art und Weise.
Die häufigste konkrete Verwendung findet der Begriff Array als Beschreibung für eine Datenstruktur in der Informatik. Dabei wird zwischen dem (Standard-)Array und dem assoziativen Array unterschieden.
Spezielle Richtfunkantennen benutzen Arrays von Antennen und in der Akustik werden Mikrofonarrays zur Ortung von Schallquellen eingesetzt. RAIDs verwenden Arrays von Festplatten zur sicheren Speicherung von Daten.
Mit Hilfe eines Arrays können Daten eines einheitlichen Datentyps geordnet so im Speicher eines Computers abgelegt werden, dass ein Zugriff auf die Daten über einen Index möglich wird. Das (Standard-)Array verwendet im Gegensatz zum assoziativen Array einen ganzzahligen Index zur Adressierung.
Schachfeld is array(8,8) of String
Die Beispielsanweisungen Schachfeld(3,3) := Schachfeld (1,2) und Schachfeld(1,2) := "Leer" liefern den Eröffnungszug „Weißer Springer auf C3“.
In den meisten höheren Programmiersprachen ist das (Standard-)Array Teil des Sprachumfangs. Die objektorientierten Programmiersprachen können diese Arrays als Objekte nachbilden.
In einem -dimensionalen Array wird die Adresse eines Elements mit Hilfe der Formel berechnet.
Da die Produkte in dieser Formel konstant sind, können sie einmalig berechnet werden und der daraus resultierende Dope-Vektor d ermöglicht dann über die Formel eine sehr schnelle Berechnung der Adresse eines jeden gespeicherten Elements.
Eine Sonderform bildet das assoziative Array. Es verwendet keinen numerischen Index, sondern einen so genannten Schlüssel zur Indizierung und damit zur Adressierung eines Elements. Am häufigsten werden assoziative Arrays als Hashtabelle umgesetzt.
Hier folgen Tipps zur Implementierung:
Naheliegend wäre, dass die einzelnen Arrayelemente direkt hintereinander im Speicher abgelegt sind. Das ist zumindest bei „hardwarenahen“ Programmiersprachen tatsächlich der Fall. Man sieht (vor allem in C) oft Konstrukte, bei denen mit Zeiger auf Arrays zugegriffen wird. Ein kleines Beispiel soll diese Thematik verständlich erläutern:
int iArray*; int *zeiger; int i; for(i=10;i<15;i++) iArray* = i; /* Adresse des Zeigers auf Adresse des 3. Arrayelementes setzen */ zeiger = &(iArray*); /* Ausgabe der Speicherzelle, die um "1 Einheit" (= Länge einer Integervariable) nach der Adresse des Zeigers steht */ printf("%d\n", *(zeiger+1)); /* Andere Ausgaben */ printf("%d\n", *zeiger); printf("%d\n", *(zeiger-1));
Dieses Programm gibt folgendes aus:
14 13 12
Pole (informatika) | Array | Vector (programación) | Tableau (informatique) | מערך (מבנה נתונים) | Array | 配列 | Array | Tablica | Array | Индексный массив | Pole (údajová štruktúra) | Tabela (računalništvo) | Вектор | Array | Масив | 数组