Dim a(5) as integer //定义一个integer型的数组a,共有5个元素。
Dim s(5) as string //定义一个string型的数组s,共有5个元素。
Dim a(5+1) as integer //定义一个integer型的数组,共有6个元素。
Dim a(5*10) as integer //定义一个integer型的数组,共有50个(50*10)元素.
还可以这么定义:
const ARRCOUNT=50 //定义一个常量(以后在程序中要是有碰到
ARRCOUNT就相当于碰到50)
dim a(ARRCOUNT) as integer //定义一个integer型的数组,共有50个元素
dim a(ARRCOUNT+1) as integer //定义一个integer型的数组,共有50+1个元素
dim a(ARRCOUNT*10) as integer //定义一个integer型的数组,共有50*10个元素
如下
Dim A(5) as integer
A是一个integer型的数组,这个数组共有5个元素。最小下标为0(也就是从a(0)开始),最大下标为5-1(也就是a(5-1))
A(0)=1 //正确
A(1)=2 //正确
A(2)=3 //正确
A(3)=4 //正确
A(4)=5 //正确
(不要在意上值所赋的值,跟后后赋的值没关系,这只是说明数组的用法)
A(5)=6 //错误
因为这个数组一共只有5个元素a(0)~a(4) 。所以要记住数组的最后一个元素总是这样表示的:a(n-1)这才是一个数组的最后一个元素。
整个流程是这样的如下:
Dim a(5) as integer
这时VB就在内存中开辟(也可称为申请)如下空间:
在内存里就是这样的,由于数组的下标总是以○开始的所以如下
最终内存就是这样的
A(0)=1 //把1放到第1格(可以这么理解:到上面去找一下a(0)在第几格)
A(3)=5 //把5放到第4格(可以这么理解:到上面去找一下a(3)在第几格)
A(2)=2 //把2放到第3格(可以这么理解:到上面去找一下a(2)在第几格)
A(1)=6 //把6放到第2格(可以这么理解:到上面去找一下a(1)在第几格)
A(4)=9 //把9放到第5格(可以这么理解:到上面去找一下a(4)在第几格)
试想a(5)=10 //把10放到哪一格???(在上面找不到a(5)在哪一格)所以a(5)不存在,所以数组的最后一个元素总是a(n-) a(5-1)这个才是最后一个元素
[J1]只有5格,因为你只申请5格,内存不可能给你4格或6格的空间