Standard Pascal, Extended Pascal
Es ist kein Adreßoperator vorgesehen.
Bemerkung:
Der direkte Zugriff auf Adressen entspricht nicht den
Gestaltungsgrundsätzen der Sprache Pascal.
XL Pascal
Ein Adreßoperator steht nicht zur Verfügung, es kann jedoch die Funktion Addr zur Adreßermittlung verwendet werden.
Turbo Pascal, Delphi
Es gibt einen unären Operator zur Adreßermittlung:
@operandoperand kann der Bezeichner einer Variable, einer Prozedur oder einer Funktion sein.
Achtung:
Im "normalen" Pascal kann @ als Alternative zu ^ verwendet
werden.
Zur Adreßermittlung kann auch die Funktion Addr verwendet werden.
Beispiel:
PROGRAM adress;
TYPE zk2 = PACKED ARRAY[1..2] OF CHAR;
VAR p : ^zk2;
i : INTEGER; { belegt 2 Byte }
BEGIN
i := 42;
p := @i; { ermittelt Adresse von i }
p := Addr(i); { ermittelt ebenfalls Adresse von i }
Writeln(p^, ' ', i); { liefert "* 42" }
p^ := 'ab';
Writeln(p^, ' ', i); { liefert "ab 25185" }
END.
Erläuterung: | Byte 1 | Byte 2 | |
|---|---|---|
| 0010 1010 | 0000 0000 | binär |
| 2A | 0 | hexadezimal |
| 42 | 0 | dezimal |
| * | als Zeichen |
Nach der Zuweisung p^ := 'ab'; sieht der Inhalt des gleichen Speicherbereichs wie folgt aus:
| Byte 1 | Byte 2 | |
|---|---|---|
| 1100 0001 | 1100 0010 | binär |
| 61 | 62 | hexadezimal |
| 97 | 98 | dezimal |
| a | b | als Zeichen |
Bemerkung:
Der Adreßoperator eröfftnet in Turbo Pascal interessante, aber
auch sehr gefährliche Möglichkeiten zur Manipulation von
Hauptspeicherinhalten.
Siehe auch: Manipulation von Zeigern