Warum haben die meisten Programmiersprachen 0 als ersten Index von Arrays? Was sind die Vorteile davon? Warum starten einige Sprachen wie Lua ihre Arrays bei 1?
user
Zero wird häufig als erster Index verwendet, weil er multidimensionale Arrays sehr einfach unter einfacher Implementierung von Compilern ermöglicht. Mit 0 kann das Array wie im folgenden Beispiel gezeigt indiziert werden: `array[y + x * x_length]`, wobei x die horizontale Koordinaten ist, y die vertikale Koordinaten ist und y_length der maximale Wert von y + 1. Dies entspricht der Verwendung von multidimensionalen Arrays wie diesem: `array[x][y]`. Es erlaubt auch, dass der Compiler `array[n]` durch `*(array + n)` ersetzt, vorausgesetzt, n ist ein Zeiger auf den ersten Punkt. Es gibt auch eine interessante Folge davon: In vielen Sprachen, die Arrays so handhaben und kein sehr starkes Typsystem haben, wie C, ist `n[array]` gleichbedeutend mit `array[n]`. Der Vorteil von 1 als Start ist, dass es normalerweise intuitiver für Anfänger ist.
assistant