数组的Pascal错误

goo*_*ing 0 arrays pascal

program s;
  type info = record
       name, surname: string;
       min, sec: integer;
  end;
  arrays = array[2..50] of info;

  var A: arrays;
begin
  A[1].name := 'name';
end.
Run Code Online (Sandbox Code Playgroud)

这有什么问题?它给了我范围检查错误,我不知道那是什么.

Tom*_*Tom 6

它会给您一个错误,因为您正在从索引2到50创建一个数组.

所以你可以访问的第一个元素是2.

begin
  A[2].name := 'name';
end.
Run Code Online (Sandbox Code Playgroud)

范围检查错误意味着您尝试访问处于无效位置的数组(因此超出范围).与其他语言不同,Pascal会在您执行此操作时抛出编译错误.