在Delphi中,静态数组,编译器会自动检测下标是否越界,动态数组,不会自动检测。
注意:delphi中数组的下标索引是从0开始的,也就是说,如果数组长度为2,则下标索引分别为0,1
procedure TestArray;
var
arr1: array[0..2] of byte; //静态数组
arr2: array of byte;//动态数组
begin
//静态数组
arr1[0] := 1;
arr1[1] := 2;
arr1[2] := 3;
arr1[3] := 4; //这一行不能编译通过,会提示下标越界
//动态数组
SetLength(arr2, 3);
arr2[0] := 1;
arr2[1] := 2;
arr2[2] := 3;
arr2[3] := 4; //这一行能编译通过,但是已经造成了内存泄露,要谨防这样使用
end;
本文介绍了Delphi中的静态数组与动态数组的区别,特别是关于数组下标越界的处理方式。静态数组在编译时会检查越界错误,而动态数组则不会进行此类检查,需要开发者自行注意。文章还提供了一个示例程序来说明这一点。
581

被折叠的 条评论
为什么被折叠?



