delphi简单的一个问题low high

来源:百度知道 编辑:UC知道 时间:2024/09/22 02:09:23
var
arr1,arr2:array of integer;
i:integer;
begin
setlength(arr1,10);
for i:=low(arr1) to high(arr1) do
begin
arr1[i]:=i+1;
arr2:=copy(arr1,1,3);
memo1.Text:=inttostr(arr1[1]);
end;
end;

end.

for i:=low(arr1) to high(arr1) do
begin
arr1[i]:=i+1;
arr2:=copy(arr1,1,3);
memo1.Text:=inttostr(arr1[1]);

以上该如何理解呢?

low(arr1)数组的下界,就是数组最小下标。high(arr1)就是上界,就是最大下标。因为 程序开始设置了动态数组arr1的大小 setlength(arr1,10) 因此arr1的数组长度为10.
for i:=low(arr1) to high(arr1) do
begin
arr1[i]:=i+1;
arr2:=copy(arr1,1,3);
memo1.Text:=inttostr(arr1[1]);
就是 i从low(arr1) 到 high(arr1)进行循环:low(arr1)=0,high(arr1)=9,因为默认动态数组的下标是从0开始,10个元素,那么最后一个下标就是9。
每一次循环 arr1[i]:=i+1;
而arr2=copy(arr1,1,3)意思是从arr1数组下标为1开始拷贝3个元素给arr2.
例如arr1=[1,2,3,4,5,6,7,8,9,10]
那么arr2就是[2,3,4]