@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