易语言取html变量,易语言取变量地址与取变量数据地址

问题

x = { 1, 2, 3 }

调试输出 (到字节集 (取变量数据地址 (x)))

调试输出 (指针到字节集 (取变量地址 (x), 4))

为什么结果输出相差8个呢?是不是前8个存储的是字节集长度?

解答汇总

1.字节集变量的地址是首字符的地址。

2.首字符前4个字节是其长度。

版本 2

.支持库 spec

.局部变量 x, 字节集

.局部变量 长度, 整数型

.局部变量 长度数据, 字节集

x = { 1, 2, 3 }

调试输出 (取变量地址 (x [1]))

长度数据 = 指针到字节集 (取变量地址 (x [1]) - 4, 4)

长度 = 取字节集数据 (长度数据, #整数型, )

调试输出 (指针到字节集 (取变量地址 (x [1]), 长度))

每种变量类型的存储方式不一样,以字节集为例:

取变量地址()取出地址值要比取变量数据地址()相差8字节,这8字节集用于存储变量的类型(整数型)、长度(整数型)。

字节集,就是节字型数组......

前四个字节表示维数的,,5-8表示个数....

数组型变量的变量地址指向的内存地址前4个字节为固定的1,后4个字节为数组的成员数,然后才是真实的数据。所以变量地址里的数值比指针小8

实例

字节集型变量其实是个指针型变量

变量地址 = 取变量地址 (字节集)

"变量地址" 处记录的是实际数据的首地址

例如: 0x00000001 = {1,2,3,4,5,6} 那么 "变量地址" 处记录的是 0x00000001

e36e426b176854086040e72da0c986e7.png

图中代码执行后输出如下结果:

32226dcc4d405cdd1749aa4a412b976f.png

既然 "变量地址" 处记录的是实际数据的地址, 那为什么还要 + 8 呢 ?

下图中的代码说明了这个问题

d576d400816ea1f88ac34fd29dc56a81.png

原帖链接:http://bbs.eyuyan.com/read.php?tid=227309&page=2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值