delphi 复制数组
时间: 2023-08-10 18:04:44 浏览: 218
在 Delphi 中,可以使用 Copy
函数来复制数组。Copy
函数的语法如下:
function Copy(Source: Pointer; Dest: Pointer; Count: NativeInt): Pointer;
其中,Source
参数是要复制的数组的起始地址,Dest
参数是目标数组的起始地址,Count
参数是要复制的元素个数。例如,下面的代码演示了如何复制一个动态数组:
var
SourceArray, DestArray: array of Integer;
I: Integer;
begin
// 初始化源数组
SetLength(SourceArray, 5);
for I := 0 to 4 do
SourceArray[I] := I;
// 复制源数组到目标数组
SetLength(DestArray, 5);
Copy(SourceArray[0], DestArray[0], 5);
// 输出目标数组
for I := 0 to 4 do
WriteLn(DestArray[I]);
end;
运行上面的代码,输出结果为:
0
1
2
3
4
相关问题
delphi 数组 子集
Delphi 中的数组子集可以通过数组的索引范围来实现。你可以使用以下代码来创建一个数组的子集:
type
TMyArray = array of Integer;
procedure CreateSubset(const SourceArray: TMyArray; StartIndex, EndIndex: Integer; var Subset: TMyArray);
var
i, SubsetLength: Integer;
begin
SubsetLength := EndIndex - StartIndex + 1;
SetLength(Subset, SubsetLength);
for i := StartIndex to EndIndex do
Subset[i - StartIndex] := SourceArray[i];
end;
var
MyArray, MySubset: TMyArray;
begin
// 创建原始数组
SetLength(MyArray, 5);
MyArray[0] := 10;
MyArray[1] := 20;
MyArray[2] := 30;
MyArray[3] := 40;
MyArray[4] := 50;
// 创建子集,从索引1到索引3的元素
CreateSubset(MyArray, 1, 3, MySubset);
// 输出子集元素
for i := 0 to High(MySubset) do
WriteLn(MySubset[i]);
end.
在上面的示例中,我们首先定义了一个 TMyArray
类型作为数组的别名。然后,我们创建了一个名为 CreateSubset
的过程,它接受一个源数组、起始索引和结束索引,并通过引用参数返回子集数组。在这个过程中,我们使用 SetLength
函数为子集数组分配内存,并使用一个循环将源数组中指定索引范围内的元素复制到子集数组中。最后,我们使用 WriteLn
函数输出子集数组的元素。
在主程序中,我们创建了一个原始数组 MyArray
,并初始化了一些元素。然后,我们调用 CreateSubset
过程来创建一个从索引1到索引3的子集数组 MySubset
。最后,我们使用一个循环在控制台上输出子集数组的元素。
希望这个示例能够帮助你理解如何在 Delphi 中创建数组的子集。如果你有任何进一步的问题,请随时提问!