方案项目1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
var
ints: array[1..2] of Integer = (0,0);
i : Integer;
begin
ints[5] := 10; // doesn't compile
i := 5;
ints[i] := 10; // Seems to works
Writeln(ints[i]); // and even display the value
Readln;
end.
我已经为数组设置了一个绑定ints
。
通常,我在尝试将值设置为有界数组之前检查Low(ints)
and ......但是当我在寻找另一段代码时,我注意到我可以在边界之外使用索引并且它不会引发任何异常...High(ints)
我想知道它为什么起作用以及结果是什么?(例如,如果这部分内存没有保留,我可以破坏它,...)
我已经搜索了其他问题,但没有找到好的问题...如果存在,请不要犹豫,放置链接并关闭此问题,谢谢。