RedGuy hat geschrieben:Wie gesagt: Ich weiß, was Zeiger sind.
Zeiger sind Variablen, die Speicheradressen beinhalten.
...aber nicht
beliebige Speicheradressen. Das ist der Punkt, der Dir offenbar entgeht.
Wenn Du einen Zeiger deklarierst, legts Du explizit fest, auf welche "Art" von Speicheradresse er zeigen kann.
In Deinem Fall hast Du Zeiger deklariert, welche
ausschließlich auf "integer" variablen Zeigen können. Ein solcher Zeiger
kann nicht auf einen anderen Zeiger zeigen. Geht nicht. Punkt. Im Gegensatz zu z.B. C++ gibt es in Pascal keine "unbestimmten" (void) Zeiger, also solche, denen die Frage "auf was zum Geier kann ich eigentlich zeigen?" egal ist.
Was passiert also bei sowas hier, wenn nicht das von Dir erwartete "Zeiger auf Zeiger"?
Anfangs enthält Zeiger1 die Memory-Adresse der Integer-Variablen (5), auf die er "zeigt". Analog enthält Zeiger2 die Memory-Adresse der Integer-Variablen (6), auf die er "zeigt".
Mit "Zeiger1 := Zeiger2;" wird
nicht die Memory-Adresse von Zeiger 2
selbst nach Zeiger1 kopiert, sondern die Memory-Adresse, welche in Zeiger2
enthalten ist.
Somit enthält Zeiger1 jetzt die gleiche Memory-Adresse der Integer-Variablen (6), auf die Zeiger2 schon zeigt.
Oder nochmal anders ausgedrückt: Du sagst nicht "Zeiger 1, zeige bitte auf Zeiger 2", sondern "Zeiger 1, zeige bitte auf das, auf wasauchimmer Zeiger 2 gerade zeigt".
PS & O/T:
Ist mein erster Post, daher erstmal ein freundliches "Hallo" an alle! :)[/i]