Thema: Delphi Zeigeroperationen

Einzelnen Beitrag anzeigen

Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Zeigeroperationen

  Alt 3. Apr 2007, 16:47
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.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat