VB单个窗体模块中如何将数组定义为全局变量 5
在窗体模块中,主程序调用子程序求解出的数组a(3),在其他过程中应用时显示a(0)=0,a(1)=0,a(2)=0只有a(3)的值为子程序返回的实际值。不知道是因为我在窗...
在窗体模块中,主程序调用子程序求解出的数组a(3),在其他过程中应用时显示a(0)=0,a(1)=0,a(2)=0只有a(3)的值为子程序返回的实际值。不知道是因为我在窗体模块中全局变量没有定义正确?还是其他原因。。。
展开
展开全部
只有在Dim中的a(3)才是代表整个数组:
Dim a(3) As Integer
在其他语句中用到a(3)就只表示a(3)这个元素而已,它不再代表整个数组了!a()或a才是表示整个数组,比如假定a(3)=1:
Call 子程序(a(3))
这时候子程序获得的参数就只是1这个数而已,而
Call 子程序(a)
这个时候子程序获得的才是整个数组。
如果你认为我理解错误,就把你的代码发出来吧。
Dim a(3) As Integer
在其他语句中用到a(3)就只表示a(3)这个元素而已,它不再代表整个数组了!a()或a才是表示整个数组,比如假定a(3)=1:
Call 子程序(a(3))
这时候子程序获得的参数就只是1这个数而已,而
Call 子程序(a)
这个时候子程序获得的才是整个数组。
如果你认为我理解错误,就把你的代码发出来吧。
追问
实在不好意思,代码有点长,在追问里添加不上。我在这里又写了具体问题http://zhidao.baidu.com/question/751512844064343684.html 请指教,谢谢
展开全部
跟全局变量没有关系吧,你只要把数组定义在声明区就可,或者把数组作为参数传递给子过程。
最好把代码贴上来研究研究。
最好把代码贴上来研究研究。
更多追问追答
追问
谢谢~我把代码添加在http://zhidao.baidu.com/question/751512844064343684.html,请指教
追答
'Dim NY() As Double
Public Sub Pesuo(T As Double, NY() As Double) '参数T在过程里没见用上
For g = 0 To 2
NY(g) = 0
For i = 2 To n
NY(g) = NY(g) + mp(i)
Next i
Print NY(g); ""; '
'Text6.Text = NY(0)
'Text7.Text = NY(1)
'Text8.Text = NY(2)
Next g
Text6.Text = NY(0)
Text7.Text = NY(1)
Text8.Text = NY(2)
End Sub
Public Sub Command1_Click()
Call Pesuo(T1, w())
For f = 0 To UBound(w) - 1 '循环只有next f ,这是补上的
O(f) = (w(0) ^ 2 - w(f + 1) ^ 2)
Print O(f); "";
Next f
End Sub
'你提供的代码不全,这些数组或变量 mp,O,w,T1不知哪来的,我没法调试一下。
'让 “网海1书生” 去研究吧,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这和全局不全局没关系了,应该是你的过程函数返回值写错了
追问
谢谢,我再检查一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询