我查过 定长字符串静态数组用Erase语句后,数组的每一个元素被设为0,为什么我下面的过程中,文本框里却得不到0呢?Private Sub Command1_Click()
Dim a(5) As String * 5
a(1) = "sdfddhfg"
Erase a
Text1.Text = a(1)
End Sub

解决方案 »

  1.   

    你查什么书了,你定义的是字符可变,被设为""了。
    Erase 语句      重新初始化大小固定的数组的元素,以及释放动态数组的存储空间。语法Erase arraylist所需的 arraylist 参数是一个或多个用逗号隔开的需要清除的数组变量。说明Erase 根据是固定大小(常规的)数组还是动态数组,来采取完全不同的行为。Erase 无需为固定大小的数组恢复内存。Erase 按下表来设置固定数组的元素:数组类型 Erase 对固定数组元素的影响 
    固定数值数组 将每个元素设为 0。 
    固定字符串数组(长度可变) 将每个元素设为零长度字符串 ("")。 
    固定字符串数组(长度固定) 将每个元素设为 0。 
    固定 Variant 数组 将每个元素设为 Empty。 
    用户定义类型的数组 将每个元素作为单独的变量来设置。 
    对象数组 将每个元素设为特定值 Nothing。 
    Erase 释放动态数组所使用的内存。在下次引用该动态数组之前,程序必须使用 ReDim 语句来重新定义该数组变量的维数。
    ^_^
      

  2.   

    http://community.csdn.net/Expert/topic/3823/3823443.xml?temp=.2087824还有,我查了MSDN,也说是0
      

  3.   

    但我在机子上运行后,觉得下面这句可能不对
    前提是先定义了一个定长字符串静态数组,给其中一个元素赋值后,用Erse语句后固定字符串数组(长度固定) 将每个元素设为 0。 是不是应改为:固定字符串数组(长度固定) 将每个元素设为相应长度的""
      

  4.   

    Dim a(5) As String * 5    结果为""
    Dim a(5) As String        结果为0认真看一下MSDN就明白了。^_^