var
Numbers1: TArray<Integer>;
Numbers2, Numbers3: TArray<Integer>;
begin
Numbers1 := [1, 2, 3, 4, 5];
//assignment copies the reference:
//both names point to the same array
Numbers2 := Numbers1;
//Copy makes an independent array
Numbers3 := Copy(Numbers1);
Numbers1[0] := 10;
WriteLn('numbers2[0] is ', Numbers2[0]);
//numbers2[0] is 10
WriteLn('numbers3[0] is ', Numbers3[0]);
//numbers3[0] is 1
end.