b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

pascal 视频教程_pascal和basic_pascal选择排序(62)

电脑杂谈  发布时间:2016-12-28 07:02:37  来源:网络整理

Procedures and functions

Parameters(参数)

Parameters: Overview(概述)

大多数过程头和函数头包含参数列表,比如,在函数头

function Power(X: Real; Y: Integer): Real; 中,参数列表是(X: Real; Y: Integer)。

参数列表由一对括号包围,包含由分号隔开的一系列参数声明。每个声明中列出的参数名由逗号分开,大多数情况下后面跟一个冒号和一个类型标志符,在一些情况下跟一个等号和一个默认值。参数名必须是有效标志符。任何一个声明能以下面的一个关键字作为前缀:varsemantics)。比如: (X, Y: Real)

(var S: string; X: Integer)

(HWnd: Integer; Text, Caption: PChar; Flags: Integer) (const P; I: Integer)

参数列表指定了调用例程时必须传递的参数的数目、顺序和类型。若一个例程没有任何参数,声明时忽略括号和标志符列表。

procedure UpdateRecords; begin ... end;

在过程体或函数体中,参数名(上面第一个例子中的X和Y)能被用作局部变量,在局部声明中不能重新声明参数名。

Parameter semantics(参数语义)

Parameter semantics: Overview(概述)

参数以下面几种方式进行分类:

? 每个参数分为value(数值参数)、variable(变量参数)、constant(常量参数)或默认是数值参数。关键字var、const以及out分别表示变量参数、常量参数和? 数值参数总是有类型的,而常量参数、变量参数和out参数既可以是有类型的,也可以是无类型的。? 数组参数有特殊规则。

文件类型以及包含文件的结构类型(的实例)只能作为变量参数传递。Value and variable parameters(数值参数和变量参数)大多数参数是数值参数(默认)或变量参数(var)。数值参数通过数值传递,而变量参数通过引用传递。要了解这句话的意义,考虑下面的函数。

function DoubleByValue(X: Integer): Integer; // X是数值参数begin

X := X * 2;

const和out(参考out(out参数。

Parameter out参数),

- 87 -

Procedures and functions

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,它有不同的值。

数值参数就像局部变量,它们的初始值是传给过程或函数的值。若把一个变量当作数值参数传递,过程或函数创建它的一个拷贝,改变这个拷贝对原始变量没有影响,并且,当程序返回调用者时,这个拷贝将被丢弃。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-62.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...