你的“第1个”,我觉得也许用这样一张图表达得清楚点:

在运算时,如果类型不同,所有计算机语言都是遵从“低精度向高精度扩展”的约定。
因为VB6的整数都是“带符号”的,因此&H8000扩展到Long类型时就扩展符号位,
变成&HFFFF8000了,这样它们的“值是相等”的。
第2个,“VB6拾遗”那儿说的完全是正确的。
至于你的那个“书”,能看到的内容,也没什么不对。
因为“不完整”,不能肯定的说它是对是错。
但它说的“绕开数组描述符”的说法,恐怕就不正确了!
在VB6中,数组元素只有“安全数组”这一种访问机制,无论如何都不可能“绕开”!
只不过利用“指针”的方式:
可以把数组A的元素直接绑定到数组B上,通过数组B访问;
可以把数组A的元素类型TypeA、通过数组B并且按类型TyteB访问;
(比如A是Long类型、有100元素,可以绑定到B上、并且是Byte类型、400元素)
可以把数组A的维度vA、通过数组B的维度vB访问。
比如A是1维、Long类型、100元素,
可以绑定到B上、同样Long类型、2维、可以是4X25、也可也是5X20,等等……
同样可以绑定到B上、Byte类型、2维、可以是4X100、也可以是8X50,20X20……
也可以是3维,2X2X100,或者4X4X25,等等……
我这儿说的“绑定”,指的是“数组元素的数据空间”是同一块内存,
不需要单独分配数据空间、再CopyMemory。
数组A、数组B可以“表面上看起来互不相干”(比如分别是不同过程中的局部变量),
但A对元素的修改,直接“反映”到数组B中;
同样通过B修改数组元素,在数组A中也是直接变化。