Informatik Array?

... komplette Frage anzeigen

3 Antworten

Bei der Allokierung wird die Anzahl der Elemente angegeben.

Da in C, Java, C# und einigen anderen Sprachen die Indizierung mit 0 beginnt, sind also die Indizes 0..(n-1).

Aber Achtung:
es gibt auch Programmiersprachen, bei denen die Indizes 1..n sind.


Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von phigeek
29.12.2015, 09:44

Stimmt, die Programmiersprache Pascal z. B. startet von sich aus beim ersten Element mit Index 1.

Dass die C-Sprachen (C/C++/Java/...) beim ersten Element mit Index 0 beginnen hat vor allem einen Effekt in der Ausführungsgeschwindigkeit beim wahlweisen Zugriff. Suche ich Element mit Nummer 5 (also das 6. Element) und haben die Elemente alle eine Größe von sagen wir mal 4 Byte, so kann ich die Position des 6. Elementes (Also Index 5) wie folgt finden

array[5] = array + 4*5 (= array Startposition + Feldgröße * Index)

Würde ich bei 1 Indexieren, so müsste ich, um Element mit Nummer 5 zu finden (das wäre ja dann das 5. Element) wie folgt rechnen:

array[5] = array + 4 * (5-1)

Diese Subtraktion macht zwar nicht viel aus, doch in großen Algorithmen kann es doch zum Tragen kommen.

Dieser kleine Geschwindigkeitsvorteil hat jedoch den Nachteil, dass viele Programmierer mit der Schleifenabbruchbedingung Mühe bekommen. Um 10 Elemente (von [0] bis [9]) zu durchlaufen, schreiben sie

pos = 1;
while(pos <= 10) {
   ... macheEtwas(pos);
   pos = pos + 1;
}

anstatt

pos = 0;
while(pos < 10) {
   ... macheEtwas(pos);
   pos = pos + 1;
}

0

Array [13] gibt die Dimension an. Also hat es 13 Elemente.

Array [5] ist das 6. Element des Arrays da da wiederum die 0 mitzählt.

Aber mal ehrlich: hätte man nicht Google benutzen können?!

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Mohamed95
28.12.2015, 16:11

Nein :) und danke

0
Kommentar von Wynand14
28.12.2015, 18:04

Das stimmt :D

0