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

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

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..5] of 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;

delphi数组作为参数传值的更多相关文章

  1. delphi 函数参数传递 默认参数(传值)、var(传址)、out(输出)、const(常数)四类

    参数可以分为: 默认参数(传值).var(传址).out(输出).const(常数)四类 {默认参数是传值, 不会被改变} function MyF1(x: Integer): Integer; be ...

  2. c# 方法参数(传值,传引用,ref,out,params,可选参数,命名参数)

       一.方法参数的类型----值类型和引用类型 当方法传递的参数是值类型时,变量的栈数据会完整地复制到目标参数中即实参和形参中的数据相同但存放在内存的不同位置.所以,在目标方法中对形参所做的更改不会 ...

  3. C++中多维数组传递参数

    在c++自定义函数时我们有时需要传递参数,有时以多维数组作为参数,这里就遇到了多维数组该怎么传值的问题了,首先我们看看一维数组是怎么做的. void print_num(int num[], int ...

  4. Java 一维数组作为参数和返回值

    一维数组作为参数: 传数组的引用 创建数组直接传,本质也是传数组的引用 传null public class Test { //数组作为参数时,可以传递3中形式 public void m1(int[ ...

  5. Java中的参数传值方式

    本文转载自 https://blog.csdn.net/SEU_Calvin/article/details/70089977 1.  你觉得下面程序会输出什么 public static void  ...

  6. 利用apply()或者rest参数来实现用数组传递函数参数

    关于call()和apply()的用法,MDN文档里写的非常清晰明白,在这里就不多做记录了. https://developer.mozilla.org/zh-CN/docs/Web/JavaScri ...

  7. struts(二) ---中参数传值

    struts中参数传值的方式有 种: 第一种:直接通过属性来传值 第二种: 第三种:

  8. JQuery发送ajax请求不能用数组作为参数

    JQuery发送ajax请求不能用数组作为参数,否则会接收不到参数, 一.js代码如下: $('#delete-button').click(function(){        var select ...

  9. Get和Post的参数传值

    1. get是从服务器上获取数据,post是向服务器传送数据. 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过 ...

随机推荐

  1. android XMl 解析神奇xstream 三: 把复杂对象转换成 xml

    前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...

  2. iOS 正则表达式判断邮箱、身份证..是否正确

    //邮箱 + (BOOL) validateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Z ...

  3. spring 管理 jdbc 事务

    @Transactional    业务实现类 类名上方--这个类中的方法,执行操作前会打开事务. 默认:RuntimeException 自动回滚, 可以try  catch 的异常,不会滚 方法名 ...

  4. android基础开发之WebView

    WebView 是android平台沟通 http & H5 页面的桥梁. 但是google对这块的表述不是很清晰,而且SDK里面基本看不到源码,只有一个接口而已. 传送:http://dev ...

  5. 在Asp.net MVC中使用Authorization Manager (AzMan)进行Windows用户身份认证

    背景 创建需要通过Windows用户进行身份认证的Asp.net MVC应用 要点 在Asp.net MVC应用基于Windows用户进行身份认证的方法有很多,如MVC自带的Windows认证就经常被 ...

  6. JavaScript Patterns 3.7 Primitive Wrappers

    Primitive value types: number, string, boolean, null, and undefined. // a primitive number var n = 1 ...

  7. CSS中vw和vh单位的使用

    vw——viewpoint width,视窗宽度,1vw等于视窗宽度的1%: vh——viewpoint height,视窗高度,1vh等于视窗高度的1%:例子:http://tutorialzine ...

  8. linux动态网络和静态网络和克隆后的网络配置

    建议设置网卡NAT模式 动态网络配置:1.一定要开启本地DHCP服务 2.在虚拟网络编辑器中选择NAT模式选中DHCP项如下图 3.ifup eth0 静态网络配置 : 注释:ifcfg-eth0部分 ...

  9. Windows 网络问题

    一.问题描述 每次重启后电脑的ip地址或无故没掉,或不能正常连网,要重新设置ip才能上网.   二.解决方法 在DOS窗口执行 netsh winsock reset netsh int ip res ...

  10. TarJan 算法求解有向连通图强连通分量

    [有向图强连通分量] 在有向图G中,如果两个 顶点间至少存在一条路径,称两个顶点强连通(strongly connected).如果有向图G的每两个顶点都强连通,称G是一个强连通图.非强连通图有向图的 ...