不知道动态数组在DELPHI程序中是否可以作为参数传递???(0分)

  • 主题发起人 主题发起人 duculer
  • 开始时间 开始时间
D

duculer

Unregistered / Unconfirmed
GUEST, unregistred user!
不知道动态数组在DELPHI程序中是否可以作为参数传递???
 
当然可以,传的是指向数组的指针
 
可以,实际传递的是指向数组的指针,且函数或过程接收参数也应为动态数组。
 
more experts tell more, why not!
 
procedure PassDnyArray(arr:array of integer);
var
i:integer;
begin
for i:=1 to GetLength(arr) do PrintInteger(arr);
end;

procedure UseDnyArray;
var
dnyA:array of integer;
i:integer;
begin
setlength(dnyA,10)
for i:=1 to 10 do dnyA:=i;
PassDnyArr(dnyA);
end;
 
不可以,必须为动态数组定义长度了才可以,没有定义setlength的是不可以的,因为
在delphi中不可以在函数的内部给传来的动态数组定义setlength
 
当然可以改变长度,只不过传递时有点区别,当数组做为参数传递时,如果在前面加上
Var标志,则该数组不但可以被改变内容也可以改变长度(用Setlength),如果不加Var
标志,则只可以改变内容,不能改变长度.
 
后退
顶部