delphi中的数组数据类型

数组允许我们以相同的名称引用一系列变量,并使用数字(索引)调用该系列中的单个元素。数组既有上界也有下界,数组的元素在这些边界内是连续的。...

数组允许我们以相同的名称引用一系列变量,并使用数字(索引)调用该系列中的单个元素。数组既有上界也有下界,数组的元素在这些边界内是连续的。

woman looking at laptop next to windows in office. woman looking at laptop next to windows in office.

数组的元素都是相同类型的值(字符串、整数、记录、自定义对象)。

在Delphi中,有两种类型的数组:一种是固定大小的数组,它总是保持相同的大小——一种是静态数组——另一种是动态数组,它的大小在运行时可以改变。

静态阵列

假设我们正在编写一个程序,允许用户在每天开始时输入一些值(例如约会次数)。我们会选择将信息存储在列表中。我们可以将此列表称为约会,每个号码可能存储为约会[1]、约会[2],依此类推。

要使用该列表,我们必须首先声明它。例如:

var Appointments : array[0..6] of Integer;

声明一个名为Appoints的变量,该变量包含7个整数值的一维数组(向量)。给定此声明,约会[3]表示约会中的第四个整数值。括号中的数字称为索引。

如果我们创建了一个静态数组,但没有为它的所有元素赋值,那么未使用的元素包含随机数据;它们就像未初始化的变量。以下代码可用于将约会数组中的所有元素设置为0。

for k := 0 to 6 do Appointments[k] := 0;

有时我们需要跟踪数组中的相关信息。例如,要跟踪计算机屏幕上的每个像素,需要使用多维数组引用其X和Y坐标来存储值。

使用Delphi,我们可以声明多维数组。例如,以下语句声明了一个二维7×24数组:

var DayHour : array[1..7, 1..24] of Real;

要计算多维数组中的元素数,请将每个索引中的元素数相乘。上面声明的DayHour变量在7行24列中留出168(7*24)个元素。要从第三行和第七列的单元格中检索值,我们将使用:DayHour[3,7]或DayHour[3][7]。以下代码可用于将DayHour数组中的所有元素设置为0。

for i := 1 to 7 do for j := 1 to 24 do DayHour[i,j] := 0;

动态数组

您可能不知道数组的确切大小。您可能希望能够在运行时更改数组的大小。动态数组声明其类型,但不声明其大小。动态数组的实际大小可以通过使用SetLength过程在运行时更改。

var Students : array of string;

创建字符串的一维动态数组。该声明不为学生分配内存。为了在内存中创建数组,我们调用SetLength过程。例如,鉴于上述声明,

SetLength(Students, 14) ;

分配一个包含14个字符串的数组,索引为0到13。动态数组总是整数索引的,总是从0到小于其元素大小的1开始。

要创建二维动态数组,请使用以下代码:

var Matrix: array of array of Double;begin SetLength(Matrix, 10, 20) end;

它为双浮点值的二维10×20数组分配空间。

要删除动态数组的内存空间,请将nil指定给数组变量,如:

Matrix := nil;

通常,程序在编译时不知道需要多少元素;这个数字直到运行时才会知道。使用动态阵列,您只能在给定时间分配所需的存储量。换句话说,动态数组的大小可以在运行时更改,这是动态数组的关键优势之一。

下一个示例创建一个整数值数组,然后调用Copy函数调整数组大小。

var Vector: array of Integer; k : integer; begin SetLength(Vector, 10) ; for k := Low(Vector) to High(Vector) do Vector[k] := i*10; ... //now we need more space SetLength(Vector, 20) ; //here, Vector array can hold up to 20 elements //(it already has 10 of them)end;

SetLength函数创建一个更大(或更小)的数组,并将现有值复制到新数组。Low和High函数确保您可以访问每个数组元素,而无需在代码中查找正确的上下索引值。

  • 发表于 2021-10-13 10:36
  • 阅读 ( 146 )
  • 分类:数学

你可能感兴趣的文章

数组(array)和数组表(arraylist)的区别

...Array的长度。它包含相同数据类型的元素的顺序集合。java中的数组与C++中的函数不同。另一方面,ArrayList可以调整自身大小,数组可以根据需要增长。由于它是一个动态数据结构,因此可以从列表中添加和删除元素。 仿制药 ...

  • 发布于 2021-06-25 03:21
  • 阅读 ( 686 )

数组(array)和一串(string)的区别

...是以空字符“\0”结尾的ASCII字符。两者在不同编程语言中的实现方式都有很大的不同。数组和字符串在java中的工作方式与C++中的工作方式非常不同。本文介绍数组和字符串之间的无偏比较。 什么是数组(an array)? 许多应用程...

  • 发布于 2021-06-25 10:17
  • 阅读 ( 1397 )

新的(new)和C++中删除运算符(delete operator in c++)的区别

C++中new和Delphi运算符的主要区别在于new被用来为对象或数组分配内存,而DELATE用于释放使用新运算符分配的内存。 有两种类型的记忆作为静态和动态记忆。假设一个语句,比如int a;int数组[10];程序员已经知道这些变量需要多...

  • 发布于 2021-07-01 04:35
  • 阅读 ( 183 )

1天(1d)和二维阵列(2d array)的区别

...据类型的项。数组允许存储相同数据类型的多个项。数组中的元素位于后续的内存位置。有两种类型的数组,一维数组和二维数组。 覆盖的关键领域 1.什么是一维数组-定义,功能2.什么是二维数组-定义,功能3.一维数组和二维...

  • 发布于 2021-07-01 10:34
  • 阅读 ( 542 )

数组(array)和c程序设计中的结构(structure in c programming)的区别

...和结构是C语言中两个基本的编程概念。总的来说,数组中的元素具有相同的数据类型,而结构中的元素具有不同的数据类型。 覆盖的关键领域 1.什么是C编程中的数组–定义,功能2.什么是C编程中的结构–定义,功能3.C编程中的...

  • 发布于 2021-07-01 12:48
  • 阅读 ( 230 )

数组表(arraylist)和c中的数组#(array in c#)的区别

...最常用的数据类型。数组是C#编程语言的基本功能,而C#中的Arraylist是一个集合。Array和ArrayList都用于存储数据,对要存储的任何数据类型都没有限制。数组表(arraylist) vs. c中的数组#(array in c#)Array和ArrayList的区别在于,Array存储的...

  • 发布于 2021-07-07 11:47
  • 阅读 ( 299 )

用delphi创建、解析和操作xml文档

...行诸如检索、更新和插入XML数据之类的操作。 作为一名Delphi程序员,您应该知道如何使用XML文档。 xml与delphi 有关将Delphi与XML配对的更多信息,请阅读: 了解如何将TTreeView组件项存储到XML(保留树节点的文本和其他属性)...

  • 发布于 2021-09-06 15:05
  • 阅读 ( 166 )

如何将媒体文件嵌入delphi可执行文件(rc/.res)(embed media files into a delphi executable (rc/.res))

...止其他人操纵这些加载项文件。 本文将向您展示如何在Delphi可执行文件中嵌入(和使用)声音文件、视频剪辑、动画以及更一般的任何类型的二进制文件。对于最通用的用途,您将看到如何将MP3文件放入Delphi exe中。 资源文...

  • 发布于 2021-09-06 15:08
  • 阅读 ( 195 )

使用delphi的键入文件文件创建数据库

简单地说,文件是某种类型的二进制序列。在Delphi中,有三类文件:类型化、文本和非类型化。类型化文件是包含特定类型数据的文件,例如双精度、整数或以前定义的自定义记录类型。文本文件包含可读的ASCII字符。当我们想...

  • 发布于 2021-09-06 15:11
  • 阅读 ( 174 )

德尔福单元剖析(德尔福初学者版)

如果您打算成为一名优秀的Delphi程序员,那么“接口”、“实现”和“使用”等词需要在您的编程知识中占有特殊的位置。 德尔福项目 当我们创建一个Delphi应用程序时,我们可以从一个空白项目、一个现有项目或Delphi的一...

  • 发布于 2021-09-10 20:53
  • 阅读 ( 183 )
ukha4604
ukha4604

0 篇文章

相关推荐