delphi 数组作为参数传递

Posted 西瓜的夏天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 数组作为参数传递相关的知识,希望对你有一定的参考价值。

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

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

procedure p1(a:array of Byte);

begin

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

ShowMessage(IntToStr(a[0]));

end;

procedure TForm1.btn1Click(Sender: TObject);

var

a:array[0..5of Byte;

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

以上是关于delphi 数组作为参数传递的主要内容,如果未能解决你的问题,请参考以下文章

Delphi 11:常量对象不能作为 var 参数传递

delphi如何调用多个参数的函数

如何在汇编函数中将元素数组作为参数传递时转发ARM寄存器的地址指针

c#调用Delphi DLL参数为结构体数组

Delphi:如何将列表作为参数传递给SQL查询?

Delphi x64:如何将本地过程作为过程参数(回调)传递