Auf ganz alten C-Compilern (auf der PDP-11) haben Zeiger mal wirklich
weniger Code benötigt, wenn man damit schrittweise ein Feld bearbeiten
wollte. Daher findet man sie besonders in alten C-Lehrbüchern sehr
gern für diesen Zweck.
Heutzutage gibt es solch eine globale Aussage nicht mehr. Sehr oft
wird ein Compiler für beides identischen Code erzeugen, man kann also
die Schreibweise benutzen, die einem das Programm übersichtlicher
erscheinen läßt. Das ist keineswegs immer die Array-Notation! Wenn
ich beispielsweise die Adresse des x-ten Elements eines Feldes an eine
Funktion foo() übergeben will (damit diese dort was reinschreiben
kann), dann kann ich natürlich schreiben:
foo(&Feld[x]);
Aber wenn man die Zeigereigenschaften von C verstanden hat (und das
sollte man ohnehin, weil einem das sonst früher oder später auf die
Füße fällt), dann weiß man, daß das hier dasselbe ist:
foo(Feld + x);
Das Besondere an C ist dabei, daß obiges unabhängig davon ist, aus
welchen Elementen Feld[] aufgebaut ist, das können also auch beliebig
komplexe Strukturen sein.