Da hat Bernhard auch Recht. Aber : es gibt ein Binärsystem. Um 256 Zahlen darzustellen komme ich mit einem Byte aus, aber nur, sofern ich die 0 mitnehme.
Speicherbezogen hast Du Recht.
Wenn Du 256 Einträge in einer Liste speichern willst ist das erste natürlich auch am Speicherplatz[0] zu finden.
Aber das heißt ja nicht, dass eine Hochsprache dafür nicht die 1 vorsehen könnte.
Der tatsächliche Zugriff muss dann natürlich auf die Speicherstelle[0] erfolgen.
Statt
for I := 0 to 255
schreibst Du dann halt
for I := 1 to 256
.
Unterm Strich ändert sich nichts, weil der Maschinencode dann gleich aussieht.
Die einzige Frage ist, was für den Menschen das logischere ist. Offenbar gehen die Meinungen da auseinander.
Technische Überlegungen wie Binärsystem ab 0 sind aber m.E. kein wirkliches Argument für Listenzähler.
Label.Text := 'Text' ist ja auch nichts, was irgendeinen natürlichen Bedzug zum Speicheraufbau hat. Die Entwicklungsumgebung gaukelt uns das nur vor. Hier sagt ja auch niemand: Im Speicher gibt es keine Labels, deshalb sind die nicht sinnvoll.