社区
Delphi
帖子详情
哪里有Delphi中常用的关键字解释说明资料?
pclogic
2003-11-08 10:50:01
如题~
...全文
74
1
打赏
收藏
哪里有Delphi中常用的关键字解释说明资料?
如题~
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tiexinliu
2003-11-08
打赏
举报
回复
多数参数是值参数(缺省)或变量(var)参数。值参数传递值(by value),变量参数传递引用(by reference)。要明白这一点,可以考虑下面的函数,
function DoubleByValue(X: Integer): Integer; // X是一个值参数
begin
X := X * 2;
Result := X;
end;
function DoubleByRef(var X: Integer): Integer; // X是一个变量参数
begin
X := X * 2;
Result := X;
end;
上面的函数返回相同的结果,但只有第二个函数 – DoubleByRef可以改变传递给其的变量的值。假设如下调用这两个函数:
var
I, J, V, W: Integer;
begin
I := 4;
V := 4;
J := DoubleByValue(I); //执行后 J = 8, I = 4
W := DoubleByRef(V); //执行后 W = 8, V = 8
end;
这些代码执行后,传递给DoubleByValue的变量 I 与最初赋给它的值相同。而传递给DoubleByRef的变量 V 则具有不同的值。
值参数的表现就象一个具有初始化值并传递到过程或函数调用中的局部变量。如果把一个变量作为值参数传递,那么过程或函数会创建一个副本;对值参数的改变只改变副本而不影响原始变量,并且当程序执行返回给调用者时这些副本被自动销毁。
另一方面,变量参数的表现就象一个指针副本。在函数或过程主体中对变量参数的改变将一致持续,直到程序执行返回调用者并且变量参数名自身已经离开其作用域。
即使相同的变量作为两个或更多的变量(var)参数被传递,也不会创建任何副本。例如,
procedure AddOne(var X, Y: Integer);
begin
X := X + 1;
Y := Y + 1;
end;
var I: Integer;
begin
I := 1;
AddOne(I, I);
end;
这些代码执行后,变量 I 的值为3。
如果一个例程的声明指定了一个变量(var)参数,那么当调用该例程时必需向其传递可赋值的表达式,如变量、类型常量(在 {$J+} 状态下)、解除参照的指针、域,或者被索引的变量。对于前一个例子(DoubleByValue和DoubleByRef),DoubleByRef(7)将导致错误,而DoubleByValue(7)是合法的。
索引和指针解除参照可以作为变量(var)参数传递。例如,DoubleByRef(MyArray[I])在例程执行之前将被求值一次。
主题组
相关主题
常量参数
Out参数
参数语义:概述
编者注
值参数相当于例程内部的局部变量,其内存分配自动完成:调用例程时分配,返回调用者时释放。因此在例程内部对其改变仅仅作用于参数值的副本。如果传递的是一个常量或者需要求值的表达式,那么常量或表达式的值回被存储到新创建的局部变量中。
变量参数相当于变量指针的别名,在例程内部并不为其分配内存。对于例程中每一次引用,都会自动解释成为传递进来的原始实体(变量或其他可赋值的表达式)。
由此可见,如果要将长串作为参数传递,则应当尽可能定义为变量(var)参数,以减少内存开销和提高代码效率。当然,这只是针对值参数和变量(var)参数而言。有时还需要考虑将长串参数声明为输出(out)参数,见Out参数。
更多见delphi中文帮助:
http://www.8860.net/delphicode/dispdoc.asp?id=70
--------------------------------------------------------------------
看尽悲伤,庸人自扰不平事。叹尽荒凉,海阔天空谁人知。狂风劲兮,百花飘
扬乱舞香。捏花一笑,海不扬波断肠心!
Delphi
中
sql语句的使用总结
###
Delphi
中
SQL语句的使用总结 在
Delphi
中
使用SQL语句是与数据库进行交互的重要手段之一。本文将详细介绍如何在
Delphi
环境
中
构造和执行SQL查询,并给出具体的示例来帮助理解。 #### 一、基本SQL查询的构建 在...
C++调用
delphi
例子代码及
说明
这个过程在“制作
说明
.docx”
中
应该有详细步骤。 5. **在C++
中
调用DLL**: 在C++项目
中
,通过`LoadLibrary`函数加载DLL,然后使用`GetProcAddress`获取导出函数的地址。接着,可以创建函数指针并调用这些函数。...
Delphi
常用
语法和控件用法
以下是一些
Delphi
的
常用
语法和控件用法的详细
说明
: 1. **注解**:在
Delphi
中
,你可以使用三种不同的注解方式: - `{}` 用于大段注释,注释直到行尾。 - `(* ... *)` 用于多行注释,可以嵌套。 - `//` 开始单行...
Delphi
6函数大全之SysUtils.pas单元 (
中
文帮助)
《
Delphi
6函数大全之SysUtils.pas单元 (
中
文帮助)》是一份针对
Delphi
6开发者的宝贵资源,它提供了 SysUtils.pas 单元的详尽
中
文
解释
,旨在帮助开发者更好地理解和使用其
中
的函数。SysUtils.pas 单元是
Delphi
标准库的...
Delphi
源码演示如何在BASM
中
调用
Delphi
Functions..rar
【标题】: "
Delphi
源码演示如何在BASM
中
调用
Delphi
Functions" 是一个关于
Delphi
编程技术的资源,它涉及到在基本汇编语言(BASM)环境
中
如何与
Delphi
函数进行交互的实践教程。这个压缩包可能包含一系列的
Delphi
...
Delphi
5,928
社区成员
262,931
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章