Vorherige Seite

Eine Ebene hoch

Nächste Seite

5.2.2 Zeigervektoren

Wie alle anderen Datentypen können auch Zeiger zu Vektoren verkettet werden. Betrachten Sie folgende Definition:

Hier verbirgt sich hinter der Variable Name eine Kette, also ein Vektor, von vier Zeigern. Diese Zeiger zeigen auf den Datentyp char. Bei der Initialisierung werden an einer Stelle im Speicher die angegebenen Namen gespeichert. Die vier Zeiger zeigen auf jeweils den ersten Buchstaben der angegebenen Namen.

Wird nun mit Name[0] auf die Variable zugegriffen, so wird der erste der vier Zeiger gewählt, und das Ergebnis ist ein Zeiger auf den Typ char. Soll nun der Buchstabe 'H' im Wort 'Hans' durch ein 'G' ersetzt werden, so kann das folgendermaßen geschehen:

Auf die Variable Name werden nacheinander zwei Operatoren angesetzt: Erst wird mit den eckigen Klammern das erste Element des Vektors gewählt, dann wird mit dem Stern auf den Inhalt, auf den der Zeiger zeigt, zugegriffen. Die Reihenfolge ergibt sich aus der Rangfolge der Operatoren (siehe Abschnitt 2.9).

Betrachten Sie nun folgende Zeile. Versuchen Sie, bevor Sie weiterlesen, selbst herauszubekommen, was die Zeile bewirkt.

In diesem Ausdruck finden wir auf der linken Seite vom Gleichheitszeichen drei Operatoren: eckige Klammern, das Pluszeichen und den Stern. Als erstes wird mit der eckigen Klammer der zweite Zeiger aus der Kette gewählt, der auf den Buchstaben 'R' des Wortes 'Robert' zeigt. Danach wird zu dem Zeiger eins dazuaddiert, sodass das Ergebnis der runden Klammer auf den Buchstaben 'o' im Wort 'Robert' zeigt. Schließlich wird mit dem Stern auf den Inhalt der Speicherstelle zugegriffen, auf den der ermittelte Zeiger verweist. Das heißt, das Ergebnis der linken Seite vom Gleichheitszeichen ist ein Zeichen (char) mit dem Inhalt 'o'. Dieser Buchstabe wird nun mit dem Buchstaben 'u' überschrieben, so dass aus dem wunderschönen Wort 'Robert' ein 'Rubert' wird.