使用delphi动态数组

电脑杂谈  发布时间:2020-07-09 14:19:35  来源:网络整理

java数组赋值给数组_delphi数组间的赋值_c语言数组赋值给数组

使用动态数组

//示例1:

var

StrArr: 字符串数组; //动态数组未定义尺寸

开始

SetLength(StrArr,6); //分配6个元素位置: 0-5

StrArr [0]: ='以防万一'; //动态数组的下限为0

ShowMessage(StrArr [0]); //分配空间后,使用与静态数组相同的方法

StrArr: = nil; //通常,无需手动释放,动态数组会在离开范围时释放自身

end;

--------------------------------------------------- ---------------------------------

//示例2. 动态数组的引用:

var

Arr1,Arr2: 整数数组;

a: 整数的数组[0..1];

java数组赋值给数组_c语言数组赋值给数组_delphi数组间的赋值

开始

SetLength(Arr1,6);

Arr1 [5]: = 100;

Arr2: = Arr1; // Arr2引用Arr1

ShowMessage(IntToStr(Arr2 [5])); // 100

ShowMessage(IntToStr(Length(Arr2))); //当然Arr2尺寸也将为6

ShowMessage(IntToStr(SizeOf(Arr1))); // 4,实际上,动态数组是一个指针

ShowMessage(IntToStr(SizeOf(Arr2))); // 4

Arr2 [5]: = 99; //现在它们指向相同的数组,改变它就是改变它

ShowMessage(IntToStr(Arr1 [5])); // 99

Arr1: = nil; //释放指针之一,数组继续存在

ShowMessage(IntToStr(Arr2 [5])); // 99

end;

--------------------------------------------------- ---------------------------------

//示例3.数组复制<1>:

c语言数组赋值给数组_java数组赋值给数组_delphi数组间的赋值

var

Arr1delphi数组间的赋值,Arr2: 整数数组;

开始

SetLength(Arr1,6);

Arr1 [5]: = 100;

Arr2: =复制(Arr1); //数组复制

Arr2 [5]: = 99; //更改Arr2将不再影响Arr1

ShowMessage(IntToStr(Arr1 [5] -Arr2 [5])); // 1

SetLength(Arr1,7);

ShowMessage(IntToStr(Length(Arr1))); // 7

ShowMessage(IntToStr(Length(Arr2))); // 6,一点也不涉及

end;

--------------------------------------------------- ---------------------------------

//示例4.数组复制<2>:

var

delphi数组间的赋值_c语言数组赋值给数组_java数组赋值给数组

Arr1,Arr2: 整数数组;

i: 整数;

开始

SetLength(Arr1,6);

对于i: =从低(Arr1)到高(Arr1)// //分配每个元素

Arr1 [i]: = i + 1;

Arr2: =复制(Arr1,1,3); //仅复制第2..4th个元素

ShowMessage(IntToStr(Arr1 [1])); // 2,现在Arr2 [0]和Arr1 [1]的值相同

ShowMessage(IntToStr(Arr2 [0])); // 2

ShowMessage(IntToStr(Length(Arr1))); // 6delphi数组间的赋值,尺寸必须不同

ShowMessage(IntToStr(Length(Arr2))); // 3

end;

--------------------------------------------------- ---------------------------------

//示例5.动态多维数组:

var

java数组赋值给数组_delphi数组间的赋值_c语言数组赋值给数组

Arr: 整数数组的数组; //定义多维数组

开始

SetLength(Arr,5,5); //分配空间

Arr [0,3]: = 100; //分配

ShowMessage(IntToStr(Arr [0,3])); //值

end;

--------------------------------------------------- ---------------------------------

//示例6.替代创建:

var

Arr: 整数数组;

开始

Arr: = varArrayCreate([0,3],varInteger);

ShowMessage(IntToStr(Length(Arr))); // 4

Arr: = VarArrayOf([1,2,3,4]);

ShowMessage(IntToStr(Arr [0])); // 1

{这是针对变量阵列的,可能存在效率问题}

end;


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-274206-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...