参数可以分为: 默认参数(传值)、var(传址)、out(输出)、const(常数)四类

{默认参数是传值, 不会被改变}
function MyF1(x: Integer): Integer;
begin
Inc(x);
Result := x;
end; {var参数是传址, 会被改变}
function MyF2(var x: Integer): Integer;
begin
Inc(x);
Result := x;
end; {out参数是为支持Com的, 和 var 的结果是一样的, 一般我们用不着它}
function MyF3(out x: Integer): Integer;
begin
Inc(x);
Result := x;
end; {const参数是绝对不可以赋值的, 这是被编译器优化的方式, 尽量多用}
function MyF4(const x: Integer): Integer;
begin
//Inc(x); {这句会出错, 因为带 const 前缀的参数是不可以更改的}
Result := x;
end; //调用测试
procedure TForm1.Button1Click(Sender: TObject);
var
a: Integer;
begin
a := ; MyF1(a);
ShowMessage(IntToStr(a)); //
a := ; MyF2(a);
ShowMessage(IntToStr(a)); //
a := ; MyF3(a);
ShowMessage(IntToStr(a)); //
a := ; MyF4(a);
ShowMessage(IntToStr(a)); //
end;

delphi 函数参数传递 默认参数(传值)、var(传址)、out(输出)、const(常数)四类的更多相关文章

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

    Delphi的参数可以分为:默认参数(传值).var(传址).out(输出).const(常数)四类 可以对比C/C++的相关知识,类比学习. 1.默认参数是传值,不会被改变,例子 function ...

  2. Java方法传递参数传值还是传址的问题

    这几天重构项目代码遇到一个疑问:可不可以在方法A中定义一个boolean变量b为false,然后A调用方法C把b传递到C方法中经过一些列业务判断后修改为true,C执行结束后A方法中b的值还是原来的f ...

  3. 面试-默认参数(传值)、var(传址)、out(输出)、const(常数)

    相关资料:1.http://blog.csdn.net/rznice/article/details/69600112.http://www.cnblogs.com/echomyecho/archiv ...

  4. javascript的变量,传值和传址,参数之间关系

    先把收获晾一下: 1.javascrip变量包含两种类型的值,一种为引用类型的值,一种是基本类型的值.引用类型包括:Array,Object,Function(可以这么理解,非基本类型的都是引用类型) ...

  5. C++中函数的默认参数

    使用方法: (1)在函数声明或定义时,直接对参数赋值,该参数就是默认参数. (2)在函数调用时,省略部分或全部参数,这时就会使用默认参数进行代替. 注意事项: (1)一般在声明函数是设置默认参数. 如 ...

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

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

  7. C#函数的默认参数——填坑记

    昨天踩了一个坑.默认参数 + 增量发布的坑. 过程是这样的. 1. 有一个底层的方法,格式形如 void Test<T>(int p1, string p2, Func<T> ...

  8. python定义函数时默认参数注意事项

    如果在调用一个函数时,没有传递默认参数,则函数内的默认参数是对函数的默认参数属性__defaults__的引用, 如 def func(arg1=[]): arg1.append(2) 调用func时 ...

  9. JavaScript函数的默认参数(default parameter)

    JavaScript函数的默认参数(default parameter) js函数参数的默认值都是undefined, ES5里,不支持直接在形参里写默认值.所以,要设置默认值,就要检测参数是否为un ...

随机推荐

  1. mongodb 学习1

    基本概念 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种.它在许多场景下可用于替代传统的关系型数据库或键/值存储方式( 文件存储格式为BSON(一种JS ...

  2. 6.查找单链表中的倒数第k个结点

    普通思路:先将整个链表从头到尾遍历一次,计算出链表的长度size,得到链表的长度之后,就好办了,直接输出第(size-k)个节点就可以了(注意链表为空,k 为0,k为1,k大于链表中节点个数时的情况) ...

  3. springboot-mybatis-plus基本项目框架

    此仅仅为web最基本框架, 统一异常管理.接口统一日志管理. 项目结构: 注: 修改为如下图,作用是sql打印输出. 源码下载:https://files.cnblogs.com/files/007s ...

  4. http 断点续传

    一.序 Hi,大家好,我是承香墨影! HTTP 协议在网络知识中占据了重要的地位,HTTP 协议最基础的就是请求和响应的报文,而报文又是由报文头(Header)和实体组成.大多数 HTTP 协议的使用 ...

  5. [mobile angular ui 1.2]桌面环境下如何自动隐藏左侧的sidebar?how to hide left sidebar on desktop browser by default?

    使用mobile angular ui 1.2开发,在默认情况下,桌面浏览器中sidebar-left是默认打开的,怎么才能在程序初始打开时关闭sidebar-left呢? 目前我找到的唯一可行办法就 ...

  6. GridView动态添加列并判断绑定数据DataTable的列类型控制展示内容

    此篇随笔是2013年根据项目需求开发记录的,不一定符合大众口味,只需了解开发思路,毕竟解决方案多种多样. 下面简单说说需求点吧: (1)通过下拉列表可以选择一个DataSet(数据集),一个DataS ...

  7. [转] fitnesse中的Map处理

    http://blog.csdn.net/doubeizhucele/article/details/42263887 fintesse会把!{}标记的变量视为HashTable对象,展现到页面上的将 ...

  8. AWS系列-创建 IAM 用户

    创建 IAM 用户(控制台) 官方文档 https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/introduction.html 通过 AWS ...

  9. PopupWindow错误:PopupWindow$1.onScrollChanged 出现 NullPointerException和PopupViewContainer.dispatchKeyEvent 出现 NullPointerException【转载】

    PopupWindow错误:PopupWindow$1.onScrollChanged 出现 NullPointerException和PopupViewContainer.dispatchKeyEv ...

  10. 虚拟机安装linux系统无法上网的解决方法

    原文:https://www.jb51.net/article/118267.htm 周末闲来无事,用虚拟机安装了centos6.5系统,安装成功后发现不能连接网络,然后我就一脸蒙蔽了,无奈之下,只能 ...