delphi 数组作为参数传递

在函数中如果数组的个数不定,可以使用开放数组参数

实参可以接受静态数组和动态数组

procedurep1(a:arrayofByte);

begin

ShowMessage( IntToHex(Integer(@a),2));

ShowMessage(IntToStr(a[0]));

end;

procedureTForm1.btn1Click(Sender: TObject);

var

a:array[0..5]ofByte;

begin

ShowMessage(IntToHex(Integer(@a),2));

p1(a);

end;

function Find(A: array of Char): Integer;

以上函数使用字符数组作为参数传值,其中A:array of Char虽然有着与动态数组

dynamic array相近的形式,但是在这里它并不代表着动态数组。这里A:array of Char

可以使用任意静态或动态数组。

另外,如果一定使A:array of Char为动态数组,则须使用以下形式:

type TDynamicCharArray = array of Char;

function Find(A: TDynamicCharArray): Integer;

======================

例子(e.g.)

function Find(A: array of Char): Integer;

begin

setlength(A,100);//出错,应为setlength只能用于动态数组。

end;

function Find(A: TDynamicCharArray): Integer;

begin

setlength(A, 100);//正确。

end;

参考http://www.cnblogs.com/bayzhang/p/6098468.html