最近突然感觉 Delphi 的动态数组非常好用, 善用它可以省略很多 GetMem、ReallocMem; 并且它是被自动维护的.

动态数组变量 arr 本身就是指针, 不能再用 @arr 获取;

但要获取某个元素位置的指针, 应该是 @arr[x]; 但随着数组的再分配, 这个地址是变化的.


//动态数组地址测试
vari: Integer;arr: TBytes;p: PByte;
beginSetLength(arr, 5);for i := 0 to 4 do arr[i] := i + 65;ShowMessage(StringOf(arr)); {ABCDE}p := PByte(arr);ShowMessage(Chr(p^)); {A}p := PByte(@arr[2]);ShowMessage(Chr(p^)); {C}p^ := Ord('-');ShowMessage(StringOf(arr)); {AB-DE}
end;//合并两个动态数组:
vararr1,arr2: TBytes;len: Integer;
beginSetLength(arr1, 3);SetLength(arr2, 3);arr1[0] := 65; arr1[1] := 66; arr1[2] := 67;arr2[0] := 68; arr2[1] := 69; arr2[2] := 70;len := Length(arr1);SetLength(arr1, len + Length(arr2));CopyMemory(@arr1[len], arr2, Length(arr2));ShowMessage(StringOf(arr1)); {ABCDEF}
end;

转载于:https://www.cnblogs.com/xiongyingfeixiang/archive/2011/12/01/2270234.html

关于动态数组指针操作的两个例子相关推荐

  1. 动态数组相关操作 0104 ArrayList

    动态数组相关操作 0104 引入命名空间 using System.Collections; 实例化一个动态数组 类名称:ArrayList 基本的实例化 ArrayList 数组名= new Arr ...

  2. 对动态数组的操作与算法

    直接贴程序: /*2016年9月12日15:00:49对动态数组的操作与算法 */ #include<stdio.h> #include<malloc.h> //malloc函 ...

  3. php指针取数组元素,php实现数组指针操作详解

    本文主要介绍了php数组指针操作.具有很好的参考价值,下面跟着小编一起来看下吧 数组指针的操作: 移动数组指针的操作: Next() 向下 同时会获得当前元素的值. Prev() 向上同时会获得当前元 ...

  4. php 数组 指针,PHP数组指针操作

    日常开发过程中,接触最多的莫过于是数组了,但是数组的操作我们一般都是用来做读写的,很少操作到有关游标(指针),但是再实际的时用中,如果利用了游标,我们的开发速度及效率会大大的提高. PHP中有关数组指 ...

  5. 数组指针(用几个例子来看看用法)

    指针数组和数组指针区别 首先 数组指针是指针?还是数组? 答案是:指针. 我们已经熟悉: 整形指针: int * pint; 能够指向整形数据的指针. 浮点型指针: float * pf; 能够指向浮 ...

  6. Delphi 指针, 静态数组, 动态数组

    https://www.cnblogs.com/shangdawei/archive/2013/04/30/3051656.html指针 : 指针是一个特殊的变量, 它里面存储的数值被解释成为内存里的 ...

  7. 静态数组和动态数组 内存分布

    数组是程序设计中是一个非常重要的概念.数组是一个用于收集大量类似数据的容器, 以及其每一个元素能被相同处理过程迭代来处理的一个抽象体. 创建数组一般有三种方式:全局/静态范围的数组,局部变量数组,申请 ...

  8. php 数组 指针,php之数组指针详解

    本文主要和大家分享php之数组指针详解,首先我们会和大家分享php 数组指的针操作方法,希望能帮助到大家. 一.php 数组指针操作 利用php的内置函数:key,current,next(),pre ...

  9. MFC中动态数组CArray的使用

    MFC中动态数组CArray的使用 2010-04-27 10:21 数组--这个C语言中的怪物,自从被直接继承到C++中,便让无数有识之士们前赴后继.绞尽脑汁,试图寻找一种可以动态增长的替代数据类型 ...

最新文章

  1. ubuntu下nginx+php5的部署
  2. mysql 连接 分组_详解MySQL中的分组查询与连接查询语句
  3. JAVA实现简单链表操作
  4. Memcached的使用
  5. 【verilog 语法】always 和 always@(*) 的区别
  6. E:Sleeping Schedule(DP)
  7. 二分检索函数lower_bound()和upper_bound()
  8. OpenShift 4 - 用 Quay Operator 安装 Quay 环境(4.10 修正)
  9. Ansible 详细用法部署安装
  10. Ubuntu 16.04 安裝chrome
  11. Matlab之subplot函数
  12. linux环境判断nginx是否已经启动
  13. 只保留日期_第五人格五个特定活动道具十分少见 最后一个一年只出现一次
  14. mongodb之使用explain和hint性能分析和优化
  15. (黑马教程)-webpack学习笔记
  16. R语言使用aov函数执行单因素方差分析、使用TukeyHSD函数分析单因素方差分析的结果并解读TukeyHSD函数的输出结果
  17. 18个最受欢迎的低代码开发平台【开源】
  18. 华大MCU-----进入深度睡眼不能下载程序
  19. vue3 倒计时功能
  20. [iOS]仿微博视频边下边播之滑动 TableView 自动播放

热门文章

  1. pdf内容怎么复制到word文档里_PDF转Word要收费?这4种免费实用的方法送你,一分钟统统能搞定...
  2. 图嵌入(一)--综述
  3. keil5——常见报错【cannot load flash device description】
  4. 【Java程序设计】Java基础类库简介
  5. Required field ‘client_protocol‘ is unset!
  6. java集合 线程安全
  7. springboot的三种启动方式
  8. 《编写有效用例》阅读笔记05
  9. Java编程的逻辑 (34) - 随机
  10. git clone大文件EOF错误