delphi简单的一个问题low high
vararr1,arr2:arrayofinteger;i:integer;beginsetlength(arr1,10);fori:=low(arr1)tohigh(a...
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]);
以上该如何理解呢? 展开
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]);
以上该如何理解呢? 展开
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]
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]
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询