Delphi 中的数组类型
该阵列让我们指的是一些使用该系列中的各个位置的指数具有相同名称的变量。的阵列或矩阵具有上限和下限并且这些元件是那些限度内是连续的。
数组的元素是相同类型的值(字符串、整数、记录、自定义对象等)。
在 Delphi 中,有两种类型的数组或数组:固定大小的数组,它始终保持相同的大小,称为: 静态数组;和一个动态数组,其大小可以在运行时改变。
静态数组或静态数组
假设我们正在编写一个程序,允许用户在每天开始时输入一系列值,例如医生的患者人数。我们会选择将信息存储在列表中。我们可以称这个列表为 Patients,每个数字都可以存储为 Patients [0]、 Patients [1] 等等。
要使用列表,我们必须首先声明它。例如:
// Declaración de Matrices Estáticas
Var
Pacientes: array[0..6] of Integer;
在前面的例子中,我们声明了一个名为Patients的变量,它包含一个由7个整数类型值组成的一维数组(向量)。鉴于此声明,我们必须记住数组的第一个索引始终为 0(零),因此,如示例所示,如果我们声明一个 [0..6] 矩阵,则其中有 7 个元素。
如果我们创建了一个静态数组但没有为其所有元素赋值,它们将包含随机数据;它们就像未初始化的变量,它们包含来自 RAM 的垃圾数据。以下代码可用于初始化默认值,在这种情况下,Patients数组的元素为 0。
for k := 0 to 6 do
Pacientes[k] := 0;
动态数组或动态数组
在某些情况下,我们不知道我们的矩阵应该有多大的大小,并且我们的矩阵的大小仍然有可能随着时间的推移而改变。动态数组声明其类型,但不声明其大小。可以在运行时使用SetLength()过程更改动态数组的实际大小。
// Declaración de array dinámico
var
Pacientes: Array of Integer;
在前面的示例中,我们声明了一个包含integer类型的一维动态数组的变量。该语句不会为Patients变量分配内存,因为它还不知道要分配的大小。为了在内存中创建数组本身,我们调用SetLength()过程,如下例所示:
// Declaración de array dinámico
var
Pacientes: Array of Integer;
begin
SetLength(Pacientes, 7);
end;
前面的示例声明了变量Patients 并为其分配了7 个整数类型的元素。
现在,如果我们想从动态数组中删除内存空间,我们只需要将其分配为null:
Pacientes := nil;
总之,如果在开发时我们不知道矩阵必须具有的大小,我们必须声明一个动态矩阵。
使用动态数组,我们可以只分配在任何给定时间所需的存储量。换句话说,动态数组的大小可以在运行时更改,这是动态数组的主要优点之一。
Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号
执行时间: 0.038794994354248 seconds