Delphi-Quellcode:
pointer(a) := pointer(b);
a := b
Diese Varianten sind in der Tat gleich. Du weißt der Variable a die gleiche ADRESSE wie der Variablen b zu (Zeigervariablen speichern ja bekanntlich nur Adressen !).
Wenn also Variable b die Adresse $B000 enthält, enthält im Anschluß der Operation Variable a ebenfalls $B000
a^ := b^
Hier tauscht du den INHALT der Speicherzellen aus. Die Adressen, auf die die beiden Variablen zeigen, bleiben gleich.
Beispiel
Variable a zeigt auf die Adresse $A000 und hat den Inhalt 134
Variable b zeigt auf die Adresse $B000 und hat den Inhalt 42
Nach der Operation schaut das ganze wie folgt aus
Variable a zeigt auf die Adresse $A000 und hat den Inhalt 42
Variable b zeigt auf die Adresse $B000 und hat den Inhalt 42
Es hat also sehr wohl einen Unterschied, insbesondere wenns dynamisch wird (New/Dispose) kann die 1. Variante fatale Folgen haben.