Thema: Delphi Pointer

Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Pointer

  Alt 6. Feb 2004, 21:17
@Pseudemys Nelsoni:
Delphi-Quellcode:
byte1 := @gesamt[0]; //byte1 auf dein speicher von gesamt[0] zeigen lassen
byte2 := @gesamt[1]; //byte2 auf dein speicher von gesamt[1] zeigen lassen
ist nicht das gleiche

byte1 und byte2 sind vom Typ "^Char" also ein Zeiger auf einen "Char" und ein Zeiger ist eine Adresse im speicher (Zahl)
Am besten man stellt sich einen Pointer als zahl vor.
Wenn du byte1 noch nix zugewiesen hast ist byte1 also irgend eine zahl
wenn du
byte1 := @gesamt[0] schreibst wird byte1 die speicheradresse (zahl) von gesamt[0] zugewiesen
somit merkst du dir im prinzip in der variablen byte1 die anfangsspeicheradresse von gesamt[0]
byte1 := gesamt[0] sollte also nicht gehen weil "gesamt[0]" keine zahl ist
deswegen dereferenziert man einen Zeiger
Wenn du also "byte11^" schreibst heißt es das du an die stelle im speicher wo byte1 hinzeigt was schreiben willst.. nochmal kurz zusammenfassend
-"@variablenname" gibt die speicheradresse der variablen zurück
-"pointer :=" lässt den zeiger auf eine andere position im speicher zeigen
-"pointer^ :=" schreibt was an die stelle im speicher wo pointer hinzeigt
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat