欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

新手请问,dim变量和const常数的应用上的区别

更新时间: 2014-01-05 01:53:17 责任编辑: Author_N1

 

新手请教,dim变量和const常数的应用上的区别
大家好,小弟是新手,刚开始学习vbscript ,以后要常来请教大家了。

我以前经常用
dim a=123 或直接 a=123 来定义 a的值,但刚发现const a=123 似乎也可以。
但一个变量,一个常数,我现在搞不明白,如果直接定义a=123 这个123具体的值的时候,是不是 a 就不算变量,就没必要用变量来表示a了? 那如果是,const还有什么意义,我直接 a=123 就定义了 a的值。

请指教,具体 dim 和const在使用上的区别,主要是const ,既然直接定义了a=123,为什么还要加const ?

--参考方法--
dim a=123
const b=123
a=321'通过
b=321'错误
const还有什么意义?
如果你在程序中有100个地方用到了常量123,现在你要把这个数值修改成321,你岂不要修改100个地方,如果用const只需要修改一个地方,并且不会出错!
--参考方法--
dim定义的是变量,定义后可以随时修改变量的值
const定义的是常量,常量定义后不能再修改它的值。

例如
<%
dim a
a=34
const pi=3.14

...
a=56'正确

...
pi=3.15'错误
%>
--参考方法--
const 定义的常量在编译时会直接替换为立即数,而dim和匿名定义的变量是在内存中。
运行的时候,CONST定义的立即不需要寻址,可以直接用,明显会比内存中的变量少了个寻址取值的过程,所以会快一些。
打个比方:
const A = 200
dim b = 100
WScript.Echo A+b
在编译的时候可能是这样:
dim b = 100
WScript.Echo 200 + Dword ptr [b的内存地址]
可以明显看到,少了给A分配内存,初始化值,寻址,取值的过程,当然,实际的处理中不会是上面描述的这么简单。
只要记得CONST定义的是常量,在编译的时候会自动替换为数值,而且值不看修改;而dim定义的是变量,在编译的时候会替换为内存地址,值可更改就行了。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:53:17
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/2589/
本文WWW.DOC100.NET DOC100.NET版权所有。