如果需要定义二维数组可以采取以下定义形式:

一、静态数组定义

静态数组定义,通常用于数组元素的数目确定的情况。定义形式如下:

示例:

1
2
3
4
5
6
7
8
9
10
11
type
  //定义二维数组类型
  TMultiArr = array[1..3,1..3of string
var
  MultiArr: TMultiArr;
   
    //定义 行12*列12 的 Integer 数组
   IntArr: array[1..12of array[1..12of Integer;
    
   //定义 行5*列5 的 string 数组
  StrArr: array[1..5,1..5of string;

二、动态数组定义

动态数组常用于当数组的元素数目不确定的时候,其定义形式如下:

1
2
3
4
  SamArr: array of array of Integer//定义二维数组,数组元素不确定
 
  type TMessageGrid = array of array of string//定义二维数组类型,数组元素不确定
  var Msgs: TMessageGrid; //声明一个二维数组类型变量

二维动态数组的元素数目,可以通过 SetLenth 来动态指定,示例代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm1.Button3Click(Sender: TObject);
type TMultiArr = array of array of string;
var
  a: TMultiArr;
  I, J: Integer;
  s: string;
begin
  SetLength(a, 10);
  for I := Low(a) to High(a) do
  begin
    SetLength(a[I], I);
    for J := Low(a[I]) to High(a[I]) do
      a[I, J] := IntToStr(I) + ',' + IntToStr(J) + ' ';
  end;
  for I := Low(a) to High(a) do
  begin
    s := '';
    for J := Low(a[I]) to High(a[I]) do
      s := s + ' ' + a[I, J];
    Memo1.Lines.Add(s);
  end;
end;

代码运行截图:

1,0

2,0  2,1

3,0  3,1  3,2

4,0  4,1  4,2  4,3

5,0  5,1  5,2  5,3

6,0  6,1  6,2  6,3  6,4  6,5

7,0  7,1  7,2  7,3  7,4  7,5  7,6

8,0  8,1  8,2  8,3  8,4  8,5  8,6  8,7

9,0  9,1  9,2  9,3  9,4  9,5  9,6  9,7  9,8

在 delphi (Object Pascal 语言)中,使用 array 关键字进行数组定义。的更多相关文章

  1. Object Pascal 语言基础

    Delphi 是以Object Pascal 语言为基础的可视化开发工具,所以要学好Delphi,首先要掌握的就是Object Pascal 语言.Object Pascal语言是Pascal之父在1 ...

  2. Object Pascal对象模型中构造函数之研究

    http://www.delphi2007.net/delphiblog/html/delphi_2004511950333715.html 前言 近期,一直在使用 C++ 与 Object Pasc ...

  3. C语言中如何将二维数组作为函数的参数传递

    今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单里,但是最后我也解决了遇到的问题,所以这篇文章主要介绍如何处理二维数组当作参数传递的情况,希望大家不 ...

  4. 以杨辉三角为例,从内存角度简单分析C语言中的动态二维数组

    学C语言,一定绕不过指针这一大难关,而指针最让人头疼的就是各种指向关系,一阶的指针还比较容易掌握,但一旦阶数一高,就很容易理不清楚其中的指向关系,现在我将通过杨辉三角为例,我会用四种方法从内存的角度简 ...

  5. C语言中指针和多维数组

    指针和多维数组 数组名是特殊的指针 数组是一个特殊的指针,多维数组也是更为复杂的数组,它们的关系是什么样的呢? 我们通过一个简单的例子来比较形象的了解指针和多维数组: int a[2][3]; 这是一 ...

  6. File handling in Delphi Object Pascal(处理record类型)

    With new users purchasing Delphi every single day, it’s not uncommon for me to meet users that are n ...

  7. C语言中的声明解析规则——数组,指针与函数

    摘要:C语言的申明存在的最大问题是:你无法以一种人们所习惯的自然方式和从左向右阅读一个声明,在引入voliatile和const关键字以后,情况更加糟糕了.由于这些关键字只能出现在声明中,是的声明形式 ...

  8. Pascal 语言中的关键字及保留字

    absolute //指令(变量) abstract //指令(方法) and //运算符(布尔) array //类型 as //运算符(RTTI) asm //语句 assembler //向后兼 ...

  9. Pascal 语言中字符与字符串

    [题目]输入一段文章(255个字符以内),求文章中单词的个数,相同单词只记一次,The 和 the 视作相同. [敲代码] //网友代码 var article,w:string; arr:array ...

随机推荐

  1. Android笔记(三十八) Android中的数据存储——SharedPreferences

    SharedPreferences是Android提供的一种轻型的数据存储方法,其本质是基于xml文件存储的,内部数据以key-value的方式存储,通常用来存储一些简单的配置信息. SharedPr ...

  2. 45 个常用Linux 命令,让你轻松玩转Linux!

    Linux 的命令确实非常多,然而熟悉 Linux 的人从来不会因为 Linux 的命令太多而烦恼.因为我们仅仅只需要掌握常用命令,就完全可以驾驭 Linux. 接下来,让我们一起来看看都有那些常用的 ...

  3. windows IIS安装php服务及配置

    windows IIS安装php服务及配置 启动IIS服务 打开 "控制面板" => "程序" => "启用或关闭Window功能&quo ...

  4. Can you answer these queries? (线段树

    题目 题意: 初始给你n个数,通过m个操作,  操作0是使区间范围内的每一个a[i]都变成 根号a[i] ,操作1是查询区间范围内数字的和. 思路: 如果一个节点sum[rt]是1的话,根号1还是1, ...

  5. 如何利用AI识别未知——加入未知类(不太靠谱),检测待识别数据和已知样本数据的匹配程度(例如使用CNN降维,再用knn类似距离来实现),将问题转化为特征搜索问题而非决策问题,使用HTM算法(记忆+模式匹配预测就是智能),GAN异常检测,RBF

    https://www.researchgate.net/post/How_to_determine_unknown_class_using_neural_network 里面有讨论,说是用rbf神经 ...

  6. LG3768 简单的数学题

    P3768 简单的数学题 题目描述 输入一个整数n和一个整数p,你需要求出$(\sum_{i=1}^n\sum_{j=1}^n ijgcd(i,j))~mod~p$,其中gcd(a,b)表示a与b的最 ...

  7. PHP导出数据库sql文件,add和update

    /*** 导出sql文件*/public function exportSql(){   //需要导出的数据库表存入到数组当中   $tables =array("T_CRM_QUEUE_F ...

  8. mvn的使用和搭建环境

    一 创建一个maven项目必须要下载maven,maven的主要功能有两个 1.可以动态配置项目所依赖的jar包,在maven下载目录下/conf/settings.xml中可以配置本地类存储库,配置 ...

  9. 完美字符子串 单调队列预处理+DP线段树优化

    题意:有一个长度为n的字符串,每一位只会是p或j.你需要取出一个子串S(注意不是子序列),使得该子串不管是从左往右还是从右往左取,都保证每时每刻已取出的p的个数不小于j的个数.如果你的子串是最长的,那 ...

  10. linux学习2 Linux云计算学习环境介绍

    一.VNC: Virtual Network Computing协议.虚拟网络计算协议. vncviewer:client vncserver:server