setlength(a[i],3)是什么意思?(20分)

  • 主题发起人 主题发起人 lj.ah
  • 开始时间 开始时间
L

lj.ah

Unregistered / Unconfirmed
GUEST, unregistred user!
这是循环中的一条语句,还有诸如setlength(a[j],4)是何意啊?很弱是吧:(
 
setlength(a[j],4)意思是设置二维数组a[j]的长度为4,类似于
var s:string;
setlength(s,4);//设置字符s长度为4
 
那在循环中变动i和j,对数组长度也不影响(为4),为什么还要加在循环中呢?就如:
procedure TForm1.Button4Click(Sender: TObject);
type
IA=array of Integer;
IAA=array of IA;
var
MyA:array of IAA;
i,j,k:Integer;
begin
SetLength(MyA,2);
for i:=0 to 1 do
begin
SetLength(MyA,3);
for j:=0 to 2 do
begin
SetLength(MyA[j],4);
for k:=0 to 3 do
MyA[i,j,k]:=k+j*4+i*3;
end;
end;
 
to Easylee:高手。
我是初学的。希望不吝赐教,帮我分析一下上面的代码,行吗?
 
SetLength()是给一个动态数组设定长度,长度值可为变量,即可变之
setlength(a,3)表示数组a(可以是动态,也可以是静态的数组),它的元素是
由一个个动态数组组成,在循环中给每个元素(即组成a的每个动态数组)设定长度
为3,setlength(a[j],4)类似
 
MyA[i,j,k]:=k+j*4+i*3;你的这一句不会出错吗
 
对不起我看错了
procedure TForm1.Button4Click(Sender: TObject);
type
IA=array of Integer;//定义一个整型数组
IAA=array of IA;//定义一个ia类型的数组(ia是个整型数组)
//那么iaa是一个2维整型数组
var
MyA:array of IAA;//是一个3维整型数组

i,j,k:Integer;
begin
SetLength(MyA,2);//定义了mya的一维长度2
for i:=0 to 1 do//因为动态数组的维数从0开始,所以i:=0 to 1;
begin
SetLength(MyA,3);//定义了2维中每一个的长度维数是3;
for j:=0 to 2 do
begin
SetLength(MyA[j],4);//定义了3维中每一个的长度维数是4;
//到这里为止Mya就是这样的情况: mya :array[0..1,0..2,0..4] of integer;
for k:=0 to 3 do//这下面的是符值
MyA[i,j,k]:=k+j*4+i*3;
end;
end;
 
那直接就用mya :array[0..1,0..2,0..4] of integer;是可以的吧?
还有for i:=0 to 1 do这一句能不能写成for i:=low(MyA) to high(MyA) do呢?
 
那直接就用mya :array[0..1,0..2,0..4] of integer;是可以的吧?
这一个我可以肯定是可以的
还有for i:=0 to 1 do这一句能不能写成for i:=low(MyA) to high(MyA) do呢?
应该也没问题,可我一般操作动态数组,没有这么做过。


 
我试试就知道了,谢谢你呀,yangyugw。我们能多交流吗?qq也可以。
 

Similar threads

回复
0
查看
804
不得闲
回复
0
查看
978
不得闲
回复
0
查看
1K
不得闲
S
回复
0
查看
835
SUNSTONE的Delphi笔记
S
后退
顶部