VB6之多维数组中元素在内存中的排列情况
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之多维数组中元素在内存中的排列情况的更多相关文章
- PHP计算二维数组指定元素的和
array_sum(array_column($arr, 'num')); //计算二维数组指定元素的和 $arr = [ [ 'id'=>1, 'num'=>3, ], [ 'id'=& ...
- C语言中二维数组如何申请动态分配内存
C语言中二维数组如何申请动态分配内存: 使用malloc函数,先分配第一维的大小,然后再循环分配每一维的大小 #include <stdio.h> #include <malloc. ...
- PHP方便快捷的将二维数组中元素的某一列值抽离出来作为此二维数组内元素的key
得益于PHP的强大的内置数组函数array_column();array_combine(); 举个小栗子: <?php // 先查询出用户的基本信息 $userArray = [['id' = ...
- 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 ...
- 100-PHP二维数组的元素输出三
<?php $stu=array(array(76,87,68), array(65,89,95), array(90,80,66), array(90,95,65)); //定义一个二维数组 ...
- 099-PHP二维数组的元素输出二
<?php $stu=array(array(76,87,68), array(65,89,95), array(90,80,66), array(90,95,65)); //定义一个二维数组 ...
- C++获取二维数组的元素个数
C/C++获取二维数组的大小/长度/元素个数 ][]; ]) /
- 《剑指offer》查找二维数组内元素 c++
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. cl ...
- 098-PHP二维数组的元素输出
<?php $stu=array(array(76,87,68), array(65,89,95), array(90,80,66), array(90,95,65)); //定义一个二维数组 ...
随机推荐
- C# 关于操作datatable的列名和删除某一列的数据
1.获取一个数据集表 DataTable dt = selectDEGS(type, words, KUser); 2.删除某一列 dt.Columns.Remove("TaskID&quo ...
- iStat for mac
iStat for mac 电脑硬件信息检测软件,安装完成后它位于"系统偏好设定"的应用程序面板,让您从选单列监测系统的各项丰富资讯,又不会占用使用者太大的桌面空间,提供的信息包括 ...
- 第 2 章 MySQL 架构组成
麻雀虽小,五脏俱全.MySQL 虽然以简单著称,但其内部结构并不简单.本章从MySQL物理组成.逻辑组成,以及相关工具几个角度来介绍 MySQL 的整体架构组成,希望能够让读者对 MySQL 有一个更 ...
- OpenStack命令 创建网络和路由管理
1.登陆用户 :tdy(前提条件创建了tdy用户) 编写登陆用户tdy用户 脚本文件 user-operc.sh user-operc.sh : 登陆用户tdy: $ source user-ope ...
- VR全景智慧城市:VR全景技术分析与研究
全景智慧城市,多年从事三维全景技术应用的互联网公司,我们利用计算机图形学.多媒体.人工智能和计算机网络技术,深入研发和推广虚拟现实9VR0技术的行业应用.如官方网站升级+720度全景.微网站建设+72 ...
- sql备份(.mdf文件备份)
第一步: 右键需要备份的数据库(这里以MyDB为例),选择“属性”. 第二步: 选择“文件”,复制路径 第三步: 打开文件所在目录,复制MyDB.mdf和MyDB_log.ldf 第四步: 把数据库停 ...
- Java 9 揭秘(3. 创建你的第一个模块)
文 by / 林本托 Tips 做一个终身学习的人. 在这个章节中,主要介绍以下内容: 如何编写模块化的Java程序 如何编译模块化程序 如何将模块的项目打包成模块化的JAR文件 如何运行模块化程序 ...
- .net core中引用webservice,并忽略https证书验证
1.打开vs, 工具-->扩展和更新 下载这个 2. 在admin下右键,添加-->connected service 选择wsdl文件路径,或者服务的url,比如https://**** ...
- OpenGL ES 2.0 渲染管线 学习笔记
图中展示整个OpenGL ES 2.0可编程管线 图中Vertex Shader和Fragment Shader 是可编程管线: Vertex Array/Buffer objects 顶点数据来源, ...
- pod出现include of non-modular header inside framework module 错误
今天打包pod 的时候 出现的错误 -> AFNetworking+RX (3.1.0.18) - ERROR | [iOS] xcodebuild: Returned an unsuccess ...