如果需要定义二维数组可以采取以下定义形式:
一、静态数组定义
静态数组定义,通常用于数组元素的数目确定的情况。定义形式如下:
示例:
1
2
3
4
5
6
7
8
9
10
11
|
type
//定义二维数组类型
TMultiArr =
array
[
1..3
,
1..3
]
of
string
;
var
MultiArr: TMultiArr;
//定义 行12*列12 的 Integer 数组
IntArr:
array
[
1..12
]
of
array
[
1..12
]
of
Integer
;
//定义 行5*列5 的 string 数组
StrArr:
array
[
1..5
,
1..5
]
of
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