当前位置:好百科>百科词条>下列程序的输出结果为_。 Private Sub Command1_Click() Dim a()

下列程序的输出结果为_。 Private Sub Command1_Click() Dim a()

2025-02-14 06:14:36 编辑:zane 浏览量:516

下列程序的输出结果为_。 Private Sub Command1_Click() Dim a()

的有关信息介绍如下:

下列程序的输出结果为_。 Private Sub Command1_Click() Dim a()

量,才看起来很复杂,要分析清楚就必须先搞清楚各个变量的使用范围,和调用规则。 Dim x As Integer, y As Integer'这里有一组外部变量,整个过程都可以调用 Private Sub Command1_Click() Dim a As Integer, b As Integer'局部变量,在这个过程中出现的都是指这个变量,其他地方的不可以调用,同名变量的变化也不会影响到它老拦 a = 5: b = 3 Call sub1(a, b) Print a, b Print x, y’这里就是指输入外部变量x,y End SubPrivate Sub sub1(ByVal m As Integer, n As Integer) '这里有个注意点:m和n的传递方式键判不同,简单说来就是call sub1(a,b)中a的值传给m,之后m的改变不会影响a,两者独立改变值,而b的值传给n后,n的值改变会影响b,也就是最后print a,b中b的值是最后一个n值返回给b的。所以最后才会b=2 Dim y As Integer'这是必须与前面外部y区分的局部y,在sub1中涉及到的都是这个局部y,它的改变与外部y无关。 x = m + n: y = m - n'局部的y只在这里有改变,之后始终为2 m = fun1(x, y)'传递的参数是外部x和局部y n = fun1(y, x) End Sub Private Function fun1(a As Integer, b As Integer) As Integer '这里的参数a,b相当于fun1的局部变量,只和前面调用函数时的x,y有关,和之前的那组a,b无关,这里的传递方法也是需要注意。 x = a + b: y = a - b'注意点:计算了x=8+2=10之后,因为传递方法是互相影响的类型,那么fun1这里的a的值也随之改变,下面计算y时就是y=10-2=8 这就是你的第一个问题所在。而且还要注意:这里获得赋值的y是那个外部变量的y,因为那个局部变量的y只在sub1函数内有效,其他地方无效。 Print x, y'输出外部x和外部y fun1 = x + y End Function 我就是解释了一部分,我想弄清楚标注地方的说明,就能够把下面的分析弄通~还有一点 你如果把所有函数括号里参数传递的方法都定为byval,那么输出就是稿含改你自己的答案。ByVal 与 ByRef(默认值) 这两个是子过程的参数传递时,指定参数按什么传递的 ByVal(按值传递) ByRef(按地址传递) 具体这样来理解: 过程中的参数列表,我们称形参 调用过程时的参数列表,我们称实参在调用时,我们要将实参的值传递给形参,这样过程才能拿这些数据参与计算并实现一些功能 那么在传递的过程中,就存在这两种传递方式 传值时(ByVal),是先给形参开辟一个临时地址,将实参的内容传入这个临时地址,这样,传递后,形参与实参是在两上不同的地址中,也就是说他们是相互独立的 传址时(ByRef),是直接将实参的地址传递给形参,这样,形参与实参就共用一个地址,所以,形参内容的改变,也直接改变了实参的内容通过上面的分析,你只要记得: 按值传递时(ByVal),形参的改变不会影响到实参 按址传递时(ByRef),形参的改变,会影响到实参

版权声明:文章由 好百科 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.haobaik.com/tips/274014.html
热门文章