procedure TForm1.Button1Click(Sender: TObject);
var
a1,a2:array of array of single;
i:integer;
begin
setlength(a1,3);
for I:=0 to 2 do
begin
setlength(a1[i],3);
end;
a1[1,1]:=5;
a2:=copy(a1);
a2[1,1]:=3;
showmessage(floattostr(a2[1,1])); //显示3
end;
procedure TForm1.Button3Click(Sender: TObject);
var
A, B: array of single;
begin
SetLength(A, 3);
A[1] := 1;
B := Copy(A);
B[1] := 2;
showmessage(floattostr(a[1]));//显示1
end;
为什么一维数组,使用Copy后,对一个数组修改,不会影响另外一个数组。而2维数组就影响。
另外。如何使2维数组想一维数组一样,一次把所有的值复制过去。
var
a1,a2:array of array of single;
i:integer;
begin
setlength(a1,3);
for I:=0 to 2 do
begin
setlength(a1[i],3);
end;
a1[1,1]:=5;
a2:=copy(a1);
a2[1,1]:=3;
showmessage(floattostr(a2[1,1])); //显示3
end;
procedure TForm1.Button3Click(Sender: TObject);
var
A, B: array of single;
begin
SetLength(A, 3);
A[1] := 1;
B := Copy(A);
B[1] := 2;
showmessage(floattostr(a[1]));//显示1
end;
为什么一维数组,使用Copy后,对一个数组修改,不会影响另外一个数组。而2维数组就影响。
另外。如何使2维数组想一维数组一样,一次把所有的值复制过去。
解决方案 »
- 有谁能发个最新的手机号数据库给我啊!
- 给定开始日期及相隔天数,求满足条件的下一日期!解决者立刻给分!
- 再问:用adotable提取表中的头三条记录,可以吗?
- delphi的TreeView中点击节点前面的stateimage图标如何触发一个事件
- 怎么判断键盘的几个按键同时按下
- socket一次最多传送多大的文件?
- 关于dbgrid的问题-----------在先等
- Frame与Form的区别?
- ======ADOConnection的问题=======
- 在那可以下载Delphi5.0的升级包
- 在StringGrid中 鼠标上下移动,行的高亮也跟着移动
- 怎样获得屏幕上某一个象素点的颜色,用什么函数
这里不管是a1还是a2都是显示3。
按照D5开发指南里的说法,如果使用 A2:=A1,那么改变任何一个数组会对另外数组有影响,使用COPY应该没什么影响啊。
效果同于: a2[0]:=a1[0];a2[1] := a1[1]...; 这样做实际上使a2[1]与a1[1]成了同一个东西。所以a2[1,1]与a1[1,1]相同就不奇怪了。
你确定COPY是执行了你说的操作?
我都说了,在D5开发指南里,说COPY只执行了拷贝,2个数组并没有关联
只有使用了
类似A:=B的时候,才有了关联那么如何可以使二维数组。一次把所有的值都复制过去。
COPY,A1:=B1都行啊
我想让他们变成两个数组,这样可以保留原来数组中的内容。
procedure TForm1.Button1Click(Sender: TObject);
var
a1,a2:array of array of single;
i:integer;
begin
setlength(a1,3);
for I:=0 to 2 do
begin
setlength(a1[i],3);
end;
a1[1,1]:=5;
-----------------------------------
setlength(a2,length(a1));
-----------------------------------
a2[1]:=copy(a1[1]);
a2[1,1]:=3; showmessage(floattostr(a1[1,1]));
结果显示5
end;