VB中byval的问题!赠30分!
发布网友
发布时间:2022-06-15 07:23
我来回答
共2个回答
热心网友
时间:2023-11-14 14:59
按值传递参数
按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。用 ByVal 关键字指出参数是按值来传递的。例子中后1个是按值传递参数,不会影响变量本身。
按地址传递参数
按地址传递参数使过程用变量的内存地址去访问实际变量的内容。结果,将变量传递给过程时,通过过程可永远改变变量值。按地址传递参数在 Visual Basic 中是缺省的。例子中前1个是按地址传递参数,第一次调子过程时,将变量x传递给过程参数y时,永远改变了变量x值,即输出的x值发生了变化;第二次调子过程时,将变量y传递给过程参数z时,永远改变了变量y值,即输出的Y值发生了变化,所以输出是6 6 12 6 10 10
热心网友
时间:2023-11-14 15:00
第一的结果应该是9 6 15 6 4 10因为是byref传递的参数
下面那个代码,在pictrue1_click中定义的y值没有变,在procl中以参数形式存在y值变了,但是因为输出在procl中所以,看起来是pictrue1_click中的y值改变了,其实并没有改变