| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 361 人关注过本帖
标题:VBVBVB求各路大神解救!
只看楼主 加入收藏
zzz123456789
Rank: 2
等 级:论坛游民
帖 子:3
专家分:20
注 册:2013-5-17
结帖率:0
收藏
已结贴  问题点数:10 回复次数:1 
VBVBVB求各路大神解救!
把其中代码Static x As Integer修改为DIM x As Integer,再观察结果是否有变化,为什么?
Private Sub Command1_Click()
 Static x As Integer
 x = 10
 y = 5
 y = f(x)
 Print x; y
End Sub
Public Function f(x As Integer)
 Dim y As Integer
 x = 20
 y = 2
 f = x * y
End Function
2013-05-17 15:17
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30067
注 册:2008-10-15
收藏
得分:10 
结果 无变化。
Static  申明的变量在 函数非执行时将得到保留。
dim 申明的变量,仅在函数执行时才得以创建。
Private Sub Command1_Click()
Static x As Integer
x = 10
y = 5
y = f(x)
Print x; y
End Sub
在这个过程中,不管X 是怎么定义的,第一个执行命令 给了 X 一个新值。无法体现 函数体未执行时,该变量还存在的结果。
Public Function f(x As Integer)
Dim y As Integer
x = 20
y = 2
f = x * y
End Function
在此函数中,X 是形参,根据VB默认的地址传递,在调用时,修改形参的值,也就是实际修改 前面一个过程中 X 的值。

最后,不管 X 是用 Static 定义,还是用 Dim 定义,该过程执行结果都是输出
 20     40

授人于鱼,不如授人于渔
早已停用QQ了
2013-05-17 17:03
快速回复:VBVBVB求各路大神解救!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017958 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved