VB Type语句中的定长字符串

例如:Address As String * 30
这样写的意思是什么?

意思就是在内存中给Address预先分配30个字节的空间,以后在使用的过程中就不能再超过30个字符的限制了;而非定长字符串则不会在声明的时候预先分配固定大小的空间,而是在使用过程中随时动态分配的。

由此可以看出:定长字符串运行效率高,但无法改变长度;非定长字符串则反之。

一般而言,自定义类型(Type)的字符串属性都是定长字符串,因为这样才能预先确定整个类型结构的实际长度(或者说占用的内存空间)。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-27

表示Address最大只能容纳30个字符。如果字符数不够,则以空格补齐。

例如:

Dim s as String * 6
s = "123"
那么实际上s = "123   ",s是"123"加三个空格组成的定长字符串。
s = "1234567"
那么 s = "123456"

示例如下:

Private Type myT
    id As String * 9
    cd As String * 5
End Type
Private Sub Form_Load()
    Dim cc As myT
    cc.id = "1234567890"
    cc.cd = "1234567890"
    MsgBox cc.id    '返回结果为"123456789"
    MsgBox cc.cd    '返回结果为"12345"
End Sub

本回答被提问者和网友采纳

VB Type语句中的定长字符串
意思就是在内存中给Address预先分配30个字节的空间,以后在使用的过程中就不能再超过30个字符的限制了;而非定长字符串则不会在声明的时候预先分配固定大小的空间,而是在使用过程中随时动态分配的。由此可以看出:定长字符串运行效率高,但无法改变长度;非定长字符串则反之。一般而言,自定义类型(Type)...

vb中的定长字符串最大长度
0长度的字符是空字符,所以字符最长是65535个 0-65535共65536个

VB中定长字符串
Dim a As String * 8 '意思就是定义一个定长为8的字符串a,此时的a其实就是8个空格 a = "abc" '这时a="abc " ,后面是5个空格 Print a & "x" '打印结果为"abc x"Print Trim(a) & "x" '打印结果为"abcx" ,Trim函数可以去除字符串两边的空格 End Sub ...

VB定长字符串的长度是指字节数还是字符数?
可以的。VB使用Unicode编码,每个字符不管是半角的还是全角的都是占用2个字节,所以字符串的长度是指字符数。Len("abc") = 3 Len("你我他") = 3 LenB("abc") = 6 LenB("你我他") = 6

在vb中,字符串(string)变长与定长的用字节问题
VB中字符串可以是“定长”和“不定长”二种。“定长”是Dim s As String * 40 (比如,那么就是10+40=50),字符串长度不可变化。“变长”直接就是:Dim s As String。串的长度直接是字符的个数(最多可以定义达到2G个字符的长度),且在这个范围之内,字符串长度可以随时发生变化。

vb字符串长度定义的问题
同时这也是一种良好的编程习惯。当你在规定某字符串的长度时,为了不使其发生内存溢出的情况,可以采用这种方式进行声明。比如,你要定义一个UserName的字符串类型,你所规定UserName的长度最多只能是10的话,你可以 dim UserName as string*10 这样一来,无论多长,系统都会自动进行裁剪~~保留10位。

vb变量 定长字符串
你把变量名称与变量存储的内容混淆了。myname是变量名称,长度与*3没有任何关系。*3意思是myname这个变量存储的内容为3个字节。如果执行 myname="myname"那么才会出现myname自动变为"myn"的情况。

在vb中,字符串(string)变长与字符串(string)定长,有什么区别?
比如说,变长字符串:“中国人”,这个自符串包含3个字符,长度就是3;如果我们再定义一个定长字符串“我是中国人”,规定这个定长字符串的长度为2,即这个字符串含有2个字符,不论它里面有多少个数字或者字母,它的长度都始终都是2,即只包含2个字符。

VB中为什么year是整型,month是定长字符串
都是整型。我的证明方法是:Dim MyYear MyYear = Year(Now)Print VarType(MyYear)Dim MyMonth Month = Month(Now)Print VarType(Month)

vb限制变量的长度,限制字符长度
先数看看是不是字符串长度大于5,如果大于5执行截字符串操作(如上提出问题使用数组解决)for i=1 to 23 if len(a(i))>5 then a(i)=left(a(i),5)end if next 经过这样的处理后就可以了

相似回答