Private Declare Sub RtlMoveMemory Lib "kernel32" (Destination As Any, Source As Any, ByVal Length As Long)

 'code by lichmama from cnblogs.com
Private Sub Form_Load()
Dim a() As Byte
Dim b(, ) As Byte
Dim c(, , ) As Byte Debug.Print "一维数组:"
Debug.Print VarPtr(a()), VarPtr(a()), VarPtr(a())
'数组元素在内存中的排列情况:
'a[0]|a[1]|a[2] Debug.Print "二维数组:"
Debug.Print VarPtr(b(, )), VarPtr(b(, )), VarPtr(b(, ))
Debug.Print VarPtr(b(, )), VarPtr(b(, )), VarPtr(b(, ))
Debug.Print VarPtr(b(, )), VarPtr(b(, )), VarPtr(b(, ))
'数组元素在内存中的排列情况:
'b[0,0]|b[1,0]|b[2,0]-->b[0,1]|b[1,1]|b[2,1]-->b[0,2]|b[1,2]|b[2,2] Debug.Print "三维数组:"
Debug.Print VarPtr(c(, , )), VarPtr(c(, , )), VarPtr(c(, , ))
Debug.Print VarPtr(c(, , )), VarPtr(c(, , )), VarPtr(c(, , ))
Debug.Print VarPtr(c(, , )), VarPtr(c(, , )), VarPtr(c(, , ))
Debug.Print VarPtr(c(, , )), VarPtr(c(, , )), VarPtr(c(, , ))
Debug.Print VarPtr(c(, , )), VarPtr(c(, , )), VarPtr(c(, , ))
Debug.Print VarPtr(c(, , )), VarPtr(c(, , )), VarPtr(c(, , ))
Debug.Print VarPtr(c(, , )), VarPtr(c(, , )), VarPtr(c(, , ))
Debug.Print VarPtr(c(, , )), VarPtr(c(, , )), VarPtr(c(, , ))
Debug.Print VarPtr(c(, , )), VarPtr(c(, , )), VarPtr(c(, , ))
'数组元素在内存中的排列情况:
'c[0,0,0]|c[1,0,0]|c[2,0,0]-->c[0,1,0]|c[1,1,0]|c[2,1,0]-->c[0,2,0]|c[1,2,0]|c[2,2,0]
'-->c[0,0,1]|c[1,0,1]|c[2,0,1]-->c[0,1,1]|c[1,1,1]|c[2,1,1]-->c[0,2,1]|c[1,2,1]|c[2,2,1]
'-->c[0,0,2]|c[1,0,2]|c[2,0,2]-->c[0,1,2]|c[1,1,2]|c[2,1,2]-->c[0,2,2]|c[1,2,2]|c[2,2,2] '我们习惯逻辑上这么给数组赋值,字面上像是b()="lhmimaca!"
b(, ) = &H6C: b(, ) = &H68: b(, ) = &H6D
b(, ) = &H69: b(, ) = &H6D: b(, ) = &H61
b(, ) = &H63: b(, ) = &H61: b(, ) = &H21 Dim text As String
text = String(, " ")
Call RtlMoveMemory(ByVal StrPtr(text), ByVal VarPtr(b(, )), )
Debug.Print "但,其实结果是这样的:";
Debug.Print StrConv(text, vbUnicode)
End Sub

看结果说话(内存地址打印):

一维数组:

二维数组:

三维数组:

但,其实结果是这样的:lichmama!         

VB6之多维数组中元素在内存中的排列情况的更多相关文章

  1. PHP计算二维数组指定元素的和

    array_sum(array_column($arr, 'num')); //计算二维数组指定元素的和 $arr = [ [ 'id'=>1, 'num'=>3, ], [ 'id'=& ...

  2. C语言中二维数组如何申请动态分配内存

    C语言中二维数组如何申请动态分配内存: 使用malloc函数,先分配第一维的大小,然后再循环分配每一维的大小 #include <stdio.h> #include <malloc. ...

  3. PHP方便快捷的将二维数组中元素的某一列值抽离出来作为此二维数组内元素的key

    得益于PHP的强大的内置数组函数array_column();array_combine(); 举个小栗子: <?php // 先查询出用户的基本信息 $userArray = [['id' = ...

  4. 101-PHP二维数组的元素输出三,封装成函数

    <?php $arr=array(array(76,87,68), array(65,89,95), array(90,80,66), array(90,95,65),5,234,56,'Hel ...

  5. 100-PHP二维数组的元素输出三

    <?php $stu=array(array(76,87,68), array(65,89,95), array(90,80,66), array(90,95,65)); //定义一个二维数组 ...

  6. 099-PHP二维数组的元素输出二

    <?php $stu=array(array(76,87,68), array(65,89,95), array(90,80,66), array(90,95,65)); //定义一个二维数组 ...

  7. C++获取二维数组的元素个数

    C/C++获取二维数组的大小/长度/元素个数 ][]; ]) /

  8. 《剑指offer》查找二维数组内元素 c++

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. cl ...

  9. 098-PHP二维数组的元素输出

    <?php $stu=array(array(76,87,68), array(65,89,95), array(90,80,66), array(90,95,65)); //定义一个二维数组 ...

随机推荐

  1. (one) 条件判断的总结

    第一:if语句的一般形式: if(expression)   statement1; statement2; 对于条件判断,我觉得要点在于“条件”(expression),它是一个结果为false或t ...

  2. jmeter将参数值写入到指定文件

    有时在测试过程中需要将测试过程中生成的参数保存下来,jmeter并没有此类功能,此时,可以 通过beanshell编写代码来实现 思路: 每次请求响应返回后,通过正则表达式获取到需要保存的值,通过Be ...

  3. 多线程编程-- part 3 多线程同步->synchronized关键字

    多线程同时访问一个资源,可以会产生不可预料的结果,所以为这个资源加锁,访问资源的第一个线程为其加锁后,其他线程便不能在使用那个资源,直到锁被解除. 举个例子: 存款1000元,能取出800的时候我就取 ...

  4. mongo - 升级步骤

    升级步骤1. 关闭balancer登陆mongos,执行sh.stopBalancer(),或者 连接到mongos>use config>db.settings.update( { _i ...

  5. 在eclipse-jee-juno中配置Aptana对jQuery代码自动提示

    主要问题 在Aptana的Web Project中打开js文件有JavaScript的自动提示,但是在JavaEE项目中却没有. 版本 eclipse-jee-juno,即Eclipse 4.2的Ja ...

  6. python小工具:用python操作HP的Quality Center (二)----- 用异步方式提高速度

    上接第一篇 http://www.cnblogs.com/sdet/p/6874631.html 在python中,很简单地能把http请求通过异步的方式发送,以下代码在python 3.6.0上运行 ...

  7. Java阶段性测试--第二三大题参考代码

    第二大题: 1.打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于它本身 package Test1; //1.打印出所有的 ...

  8. 逻辑卷管理lvm

    逻辑卷管理LVM 一 创建逻辑卷 1准备分区或硬盘 这里使用/dev/sdb./dev/sdc两块硬盘和/dev/sda9./dev/sda10两个分区,大小都为1G,磁盘有限,我也不想这么抠的. 添 ...

  9. Spring+SpringMVC+MyBatis深入学习及搭建(十)——MyBatis逆向工程

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6973266.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(九)--My ...

  10. python学习-面向对象

    面向对象 编程方式的区别 过程式编程 函数式编程 面向对象式编程 面向对象编程 对象是类的一个实例 创建 class foo(): def __init__(self): #类的构造方法 pass d ...