定长string的区别?

jiewenxu 2011-10-29 10:50:30
数据类型中sting类型有两种,一种是定长的 dim sr as string*10 另一种就是不定长的。按说定长的要比不定长的占用内存要少,运算速度要快

    Sub sss1()
Dim x, t, s As String * 5, m As Double
t = Timer
For x = 1 To 3000000
s = 100 & "我我我我我我"
Next x
Debug.Print Timer - t
End Sub


可是像这个定长的反而慢,后来查出原因是100是数字,如果100变成“100”后,定长的就比不定长的要快了。这里是什么原理呢
...全文
226 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
基础类的东西不太懂,帮顶
jiewenxu 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 new_auto_guy 的回复:]

因为100不是字符,要将其存入s中还要转换成字符,再进行&操作,而“100”是字符串,不必进行转换了,直接进行&操作,当然快啦。记住,100转换成“100”要占用一定的系统资源。
[/Quote]

但是为什么没有转换成字符之前为什么定长的反而慢,你说的这点我知道
rfb0204421 2011-11-10
  • 打赏
  • 举报
回复
可能如楼上所说
new_auto_guy 2011-10-30
  • 打赏
  • 举报
回复
因为100不是字符,要将其存入s中还要转换成字符,再进行&操作,而“100”是字符串,不必进行转换了,直接进行&操作,当然快啦。记住,100转换成“100”要占用一定的系统资源。

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧