tw8191.pp 500 B

12345678910111213141516171819202122232425262728293031323334353637
  1. program PCharRangeChecking;
  2. {$APPTYPE CONSOLE}
  3. {$ifdef fpc}
  4. {$mode delphi}
  5. {$endif}
  6. {$R+}
  7. function Test: Boolean;
  8. var
  9. s: shortstring;
  10. p: PChar;
  11. begin
  12. s := '1234567890';
  13. p := PChar(@s[1]);
  14. Inc(p,4);
  15. Result :=
  16. (p[-4] = '1') and
  17. (p[-3] = '2') and
  18. (p[-2] = '3') and
  19. (p[-1] = '4') and
  20. (p[ 0] = '5') and
  21. (p[ 1] = '6') and
  22. (p[ 2] = '7') and
  23. (p[ 3] = '8') and
  24. (p[ 4] = '9') and
  25. (p[ 5] = '0');
  26. end;
  27. begin
  28. if not Test then
  29. halt(1);
  30. WriteLn('ok');
  31. end.