Delphi中动态数组地址深入解析

 我来答
大沈他次苹0B
2022-07-24 · TA获得超过7328个赞
知道大有可为答主
回答量:3059
采纳率:100%
帮助的人:178万
展开全部
Delphi中动态数组是一种使用非常灵活的数据类型,这里探讨几个和地址有关的概念:

1、数组地址:动态数组的数组地址(太拗口了),即动态数组存储数据的地址,一般我们用数组名称直接代替:

比如:

动态数组定义为:

x:array of integer;

x本身代表的是数组存储数据的地址。那么问题来了,x是一个变量名称,一般取地址不是@x吗?且看2↓

2、数组变量地址:这个说起来更拗口......动态数组变量的变量地址,怎么说呢?程序中定义了一个变量x(接上节),我们为x这个变量分配了一个地址,对比一下啊:

x:array of integer;

y:integer;

那么作为一个变量,我们老老实实取变量地址的时候,@x,@y,取出来的值是连续的,并且差值为4

3、数组元素地址:这个可以看作是一个普通变量的地址,取一个数组元素x[0],那么x[0]的取地址为@x[0],既然x是动态数组存储数据的地址,而x[n]是数组元素的地址,那么,x[0]=x,因为x[0]是数组的第一个元素,第一个元素的地址不就是数组存储数据的开始吗?!

综上:

对于定义:

x:array of double;

x:表示数组元素存储空间的首地址

@x:表示存储变量名称的地址

x[0]:表示数组的第一个元素

@x[0]:表示数组的第一个元素地址,等同于x
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式