zoukankan      html  css  js  c++  java
  • 动态数组的使用

    //例1:
    var
      StrArr: array of String;  //动态数组定义时不与维数
    begin
      SetLength(StrArr,6);  //分配6个元素位置: 0-5
      StrArr[0] := '万一';  //动态数组的下界是 0
      ShowMessage(StrArr[0]);  //分配空间后和静态数组一样使用
      StrArr := nil;        //一般没必要手动释放, 动态数组离开作用域会自释放
    end;
    
    //例2. 动态数组的引用: var Arr1,Arr2: array of Integer; a: array[0..1] of Integer; begin 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. 数组 Copy <1>: var Arr1,Arr2: array of Integer; begin SetLength(Arr1,6); Arr1[5] := 100; Arr2 := Copy(Arr1); //数组 Copy 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. 数组 Copy <2>: var Arr1,Arr2: array of Integer; i: Integer; begin SetLength(Arr1,6); for i := Low(Arr1) to High(Arr1) do //给每个元素赋值 Arr1[i] := i+1; Arr2 := Copy(Arr1,1,3); //只 Copy 第2..4个元素 ShowMessage(IntToStr(Arr1[1])); //2, 现在 Arr2[0] 和 Arr1[1] 的值是一样的 ShowMessage(IntToStr(Arr2[0])); //2 ShowMessage(IntToStr(Length(Arr1))); //6, 维数肯定不一样了 ShowMessage(IntToStr(Length(Arr2))); //3 end;
    //例5. 动态多维数组: var Arr: array of array of Integer; //定义多维数组 begin SetLength(Arr,5,5); //分配空间 Arr[0,3] := 100; //赋值 ShowMessage(IntToStr(Arr[0,3])); //取值 end;
    //例6. 另类建立: var Arr: array of Integer; begin Arr := varArrayCreate([0,3],varInteger); ShowMessage(IntToStr(Length(Arr))); //4 Arr := VarArrayOf([1,2,3,4]); ShowMessage(IntToStr(Arr[0])); //1 {这是给变体数组使用的,可能会有效率问题} end;
  • 相关阅读:
    kubectl exec 执行 容器命令
    centos下通过yum安装redis-cli
    windows下 使用ip地址反查主机名的命令
    O365(世纪互联)SharePoint 之文档库使用小记
    SharePoint 2016 图文安装教程
    SharePoint 2013 激活标题字段外的Menu菜单
    SharePoint 2013 定制搜索显示模板(二)
    SharePoint 2013 定制搜索显示模板
    SharePoint 2013 网站搜索规则的使用示例
    SharePoint 2013 搜索功能,列表项目不能完全被索引
  • 原文地址:https://www.cnblogs.com/del/p/989117.html
Copyright © 2011-2022 走看看