今天来研究一下动态数组。直接上代码:
program project1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{ you can add units after this };
//打印数组
procedure PrintA(Arr:array of Integer);
var
i:integer;
begin
for i:=0 to Length(Arr)-1 do
begin
write(' a',i,'=',arr[i]);
end;
writeln;
end;
//过程BadEditA是不能修改实参的
procedure BadEditA(Arr:array of Integer);
var
i:integer;
begin
for i:=0 to Length(Arr)-1 do
begin
arr[i]:=88;
end;
end;
//过程A是可以修改实参的
procedure EditA(VAR Arr:array of Integer);
var
i:integer;
begin
for i:=0 to Length(Arr)-1 do //Length函数取动态数组的元素个数
begin
arr[i]:=99;
end;
end;
type
IntArray=array of Integer;
var
dya:array of integer; //动态数组变量定义
dyb:IntArray;
i:integer;
//过程EditB形参A前没有var 但过程内是可以修改实参的
procedure EditB(A:IntArray);
var
i:integer;
begin
fo