怎么样在过程中传递二维数组(100分)

  • 主题发起人 主题发起人 zengyi
  • 开始时间 开始时间
Z

zengyi

Unregistered / Unconfirmed
GUEST, unregistred user!
但是为什么我传一维就可以,传二维就不行呢
var
a : array of array of string;
begin
setlength(a,4,4);
a[1,1]:='abc';
aa(a);
end;
procedure tform1.aa( f :array of array of string);
begin
showmessage(f[1,1]);
end;
 
定义一个类型表示二维数组
type
Tdimarray = array of array of string;

程序中就可以把Tdimarray当作二维的数组类来用了.
比如:
procedure testproc (arr : Tdimarray);
begin
showmessage(arr[1][2]);
end;
 
能不能说清楚啊
 
他说的是在类型定义部分定义一个表示二维数据的新类型,定义在接口部分。
 
过程数组参数实际上是通过指针来传递的。
一维数组传递这个数组的指针,二维数组需要把数组定义成一个类型,传递该类型的指针
 
同意eric.youbin
但这种情况最好使用TList,或TStringList,如果需要改变值,将变量定义为var
 
后退
顶部