Wertzuweisungen und Zeigerzuweisungen
Mit Zeigervariablen kann man ganz normal arbeiten, wie mit anderen Variablen auch.
Man muß vor den Namen der Variablen nur einen Stern schreiben.
Beispiele:
(i und j seien als Zeiger auf int, p als Zeiger auf float,
r und v als einfache float- Variablen definiert)
An dieser Stelle sei der Aufbau dieses und der folgenden Bilder kurz erklärt.
Die Teilbilder symbolisieren je einen Zustand des Speichers.
Die grünen Kästchen, die sich in diesem Bild unter den Teilbildern befinden
und durch die der Pfeil hindurchläuft, enthalten den Befehl,
mit dem der Zustand im nächsten Teilbild erreicht wird.
Innerhalb der Teilbilder befinden sich weitere Rechtecke.
Jedes dieser Rechtecke symbolisiert eine Variable.
Deshalb steht auch jedesmal oben fett gedruckt der Name
und darunter der Inhalt der Variable in eben jenem Kästchen.
Änderungen (im Vergleich zum vorhergehenden Teilbild) sind generell fett und rot dargestellt.
Die Zahlen, die in hexadezimaler Form dargestellt sind (0x********), sind Speicheradressen.
Stehen diese in einem Kästchen,
so ist dies der Inhalt einer Zeigervariable
(weiter oben als Nummer auf der Garderobenmarke bezeichnet),
stehen diese über einem Kästchen, so ist dies die Adresse,
an dem sich die darunter dargestellte Variable im Speicher befindet
(Die Nummer des Hakens, an dem die Variable hängt).
Auch Zeiger selbst können gesetzt werden
(So, als ob man in eine Garderobenmarke selbst Nummern einprägen könnte,
was allerdings im realen Leben dazu führen würde,
daß mehrere Garderobenmarken mit den gleichen Nummern
zum gleichen Haken gehören würden).
Beispiele:
(zeigr1 und zeigr2 seien Zeiger auf float-Variablen, f sei eine float-Variable)
Wie dem aufmerksamen Betrachter nicht entgehen dürfte,
dient das kaufmännische Und (&) dazu,
vom Compiler die Adresse einer stinknormalen statischen Variable zu erfragen,
das aber nur nebenbei.
Zum besseren Verständnis sei noch ein Beispiel mit Deklarationen
und Speicherbelegung dargestellt:
Wie in der Variablendeklaration und Zuweisung oben links in diesem Bild sichtbar ist,
gibt es auch eine vordefinierte Zeigerkonstante.
Sie heißt NULL und zeigt buchstäblich ins Nichts.
Dies hilft in Listen, belegte und nicht belegte Zeiger zu unterscheiden,
was auch dadurch unterstrichen wird,
daß die gleiche Konstante im Pascal NIL heißt,
was die Abkürzung für "not in list" (nicht in Liste) ist.
Autor: Ulrich Kritzner