关于变量数据类型的几点讨论(一)

变量|数据|数据类型

variant变量的格式有OLE定义,可以存放任何类型的数据,并以下图的格式用16个字节存放某些变量。

0-1
2-7
8-15

varType
Unused
Value

第0和1字节保存一个整数值,以指明在第8-15字节中存放的是何种类型的数据,第2到7字节一般情况下没有用,并且在大多数情况下,该变量的第8到15字节也不是全部用上。如:用一个variant变量保存了一个整形数,那么开始两个字节中的值为2-vbinteger,第8和9字节存放真实的16位值。

让我们写一段代码验证一下。

Dim v as variant ‘variant是vb的默认数据类型,所以也可以定义为dim v

v=1000

debug.print vartype(v) ‘输出结果2 –vbinteger

另外换个方式检验:

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

Dim v As Variant

Dim i As Integer

v = 1000

CopyMemory i, v, 2

Debug.Print "0-1位是" & i

CopyMemory i, ByVal (VarPtr(v) + 8), 2

Debug.Print "8-9位是 " & I

可以看到8-9位的结果是1000,而0-1位为2-vbinteger。

时间: 2024-10-25 17:06:54

关于变量数据类型的几点讨论(一)的相关文章

JavaScript知识点总结(六)之JavaScript判断变量数据类型_javascript技巧

最近做了一个项目,其中有关于js判断数据类型的处理,在网上搜了相关资料,并且亲自测试了各种数据类型的判断,绝对安全.下面小编把具体内容总结分享给大家,大家参考下! 一.JS中的数据类型 1.数值型(Number):包括整数.浮点数. 2.布尔型(Boolean) 3.字符串型(String) 4.对象(Object) 5.数组(Array) 6.空值(Null) 7.未定义(Undefined) 二.判断一个变量的数据类型 1.数值型(number) 比较常用的判断方法是: function i

Java基础-02总结关键字,标识符,注释,常量进制,变量数据类型

你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 1:关键字(掌握) (1)被Java语言赋予特定含义的单词(2)特点:全部小写.(3)注意事项:A:goto和const作为保留字存在.B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记 /*关键

PowerShell中使用GetType获取变量数据类型_PowerShell

本文介绍在PowerShell中如何获取变量的数据类型,使用GetType()函数来完成此任务. 首先看一个例子: 复制代码 代码如下: PS C:\Users\zhanghong> $i=1 PS C:\Users\zhanghong> $i.gettype() IsPublic IsSerial Name                                     BaseType -------- -------- ----                          

C语言中结构体偏移及结构体成员变量访问方式的问题讨论_C 语言

c语言结构体偏移 示例1 我们先来定义一下需求: 已知结构体类型定义如下: struct node_t{ char a; int b; int c; }; 且结构体1Byte对齐 #pragma pack(1) 求: 结构体struct node_t中成员变量c的偏移. 注:这里的偏移量指的是相对于结构体起始位置的偏移量. 看到这个问题的时候,我相信不同的人脑中浮现的解决方法可能会有所差异,下面我们分析以下几种可能的解法: 方法1 如果你对c语言的库函数比较熟悉的话,那么你第一个想到的肯定是of

vb变量、常数和数据类型及过程概述(一)

在Visual Basic环境下进行计算时,常常需要临时存储数据.例如,可能想要计算几个值,将它们进行比较,并根据比较的结果对它们进行不同的操作.如果想要比较这些值,就要存储它们,但不必把它们存入属性.像大多数编程语言那样,Visual Basic 使用变量来存储值.变量具有名字(用来引用该变量所含的值的名词)和数据类型(确定变量可以存储的数据的种类).数组可以用来存储建立了索引的相关变量集. 常数也存储数值,顾名思义,在整个应用程序执行过程中,这些值都保持不变.常数的使用增加了代码的可读性,因

简单介绍JavaScript的变量和数据类型_基础知识

 JavaScript数据类型: 编程语言的最根本的特征之一是一组它支持的数据类型.这些是可被表示和操纵的编程语言的值的类型. JavaScript允许有三个基本数据类型:     数字如. 123, 120.50 等.     字符串如 "This text string" 等.     布尔类型,如 true 或 false. 的JavaScript还定义了两种数据类型:null和undefined,其每一个仅限定一个单一的值. 除了这些基本的数据类型,JavaScript支持被称

深入解析Java中的数据类型与变量_java

Java数据类型转换(自动转换和强制转换)数据类型的转换,分为自动转换和强制转换.自动转换是程序在执行过程中"悄然"进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换:强制类型转换则必须在代码中声明,转换顺序不受限制. 自动数据类型转换 自动转换按从低到高的顺序转换.不同类型数据间的优先关系如下:     低--------------------------------------------->高     byte,short,char-> int

详解JavaScript的变量和数据类型_javascript技巧

对于一门编程语言,肯定包含变量和数据类型.今天我们就来看看JavaScript脚本语言的变量和数据类型.相对 于其他的Java,C++等高级程序语言,JavaScript显得很简单.一.变量        JavaScript的变量是松散类型的,所谓松散就是用来保存任何类型的数据.变量是存储信息的容器.定义变量时要使用var操作符(var是关键字),后面跟一个变量名(变量名是标识符).变量也就是初始化后可以再次改变的量. 那么我们来看看实例: <span style="font-size:

《卸甲笔记》-PostgreSQL和Oracle的数据类型的对比系列五:其它类型

PostgreSQL是世界上功能最强大的开源数据库,在国内得到了越来越多机构和开发者的青睐和应用.随着PostgreSQL的应用越来越广泛,Oracle向PostgreSQL数据库的数据迁移需求也越来越多.数据库之间数据迁移的时候,首先遇到的,并且也是最重要的,就是数据类型之间的转换.下面根据自己的理解和测试,写了一些数据类型之间的差异以及迁移时的注意事项的文章,不足之处,尚请多多指教. 其它类型 Oracle的内建数据类型中,还有一些其它的类型.不能够归类到字符.数字.时间和大数据类型等.比如