12345678910111213141516171819202122232425262728293031323334353637 |
- program PCharRangeChecking;
- {$APPTYPE CONSOLE}
- {$ifdef fpc}
- {$mode delphi}
- {$endif}
- {$R+}
- function Test: Boolean;
- var
- s: shortstring;
- p: PChar;
- begin
- s := '1234567890';
- p := PChar(@s[1]);
- Inc(p,4);
- Result :=
- (p[-4] = '1') and
- (p[-3] = '2') and
- (p[-2] = '3') and
- (p[-1] = '4') and
- (p[ 0] = '5') and
- (p[ 1] = '6') and
- (p[ 2] = '7') and
- (p[ 3] = '8') and
- (p[ 4] = '9') and
- (p[ 5] = '0');
- end;
- begin
- if not Test then
- halt(1);
- WriteLn('ok');
- end.
|