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

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

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

在过程体或函数体中,无类型参数和每个类型都不兼容。要对一个无类型参数进行操作,你必须对它进行转换。通常,编译器不会对无类型参数检验它的有效性。

下面的例子在Equal函数中使用无类型参数,这个函数比较两个参数中指定数目的字节。

function Equal(var Source, Dest; Size: Integer): Boolean;

type

TBytes = array[0..MaxInt - 1] of Byte;

var

N: Integer;

begin

N := 0;

while (N < Size) and (TBytes(Dest)[N] = TBytes(Source)[N]) do

Inc(N);

Equal := N = Size;

end;

给定下面的声明

type

- 89 -

Procedures and functions

TVector = array[1..10] of Integer;

TPoint = record

X, Y: Integer;

end;

var

Vec1, Vec2: TVector;

N: Integer;

P: TPoint;

你可以如下调用Equal:

Equal(Vec1, Vec2, SizeOf(TVector)) // 比较Vec1和Vec2

Equal(Vec1, Vec2, SizeOf(Integer) * N) // 比较Vec1和Vec2的前N个元素

Equal(Vec1[1], Vec1[6], SizeOf(Integer) * 5) // 比较Vec1的前5个元素和后5个元素

Equal(Vec1[1], P, 4)// 比较Vec1[1]和P.X、Vec1[2]和P.Y

String parameters(字符串参数)

About string parameters(关于字符串参数)

当例程使用短字符串(short-string)参数时,在声明时不能指定它们的长度。也就是说,声明 procedure Check(S: string[20]); // 语法错误

产生编译错误。但是

type TString20 = string[20];

procedure Check(S: TString20);

是有效的。特殊标志符OpenString能用于声明可变长度的短字符串参数:

procedure Check(S: OpenString);

当编译器指示字{$H-}和{$P+}都起作用时,在声明参数时关键字string等同于OpenString。

短字符串、OpenString、$H和$P是为了向后兼容性。在新代码中,使用长字符串来避免这种情况。 Array parameters(数组参数)

Array parameters: Overview(概述)

当例程使用数组参数时,你不能在声明参数时包含索引说明符。也就是说,声明

procedure Sort(A: array[1..10] of Integer); // 语法错误

产生编译错误,但

type TDigits = array[1..10] of Integer;

procedure Sort(A: TDigits);

是有效的。但在大多数情况下,开放数组参数是更好的办法。

Open array parameters(开放数组参数)

开放数组参数允许传递不同大小的数组到同一个过程或函数。要定义一个使用开放数组参数的例程,在- 90 -

Procedures and functions


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

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

    • 熊熊
      熊熊

      好可爱

    • 张亚培
      张亚培

      我会对美国说关你鸟事

    • 元太祖成吉思汗
      元太祖成吉思汗

      谁告诉你北洋没有一发炮弹击穿击穿主装甲

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