[求助]请问什么是形参?什么是实参?
请问什么是形参?什么是实参?本人是初学者,对参数的传递不能理解,请那位高手能否用通俗的语言解释一下,谢谢!!
首先实参和形参所处位置不同,实参一般放在事件代码中有确定的值.而形参是在过程或函数中,形参类型确定但值不确定.
如下:
Private Sub exam(ByVal x As Integer, y As Integer)
x = x - 1
y = y - 1
Print x, y
End Sub
Private Sub Command1_Click()
Dim a%, b As Integer
a = 10
b = 20
Call exam(a, b)
Print a, b
End Sub
command1_click事件中的call exam(a,b)是过程调用语句(用来调用子过程的),其中括号中的a,b均为实参有确定的值10,20.系统执行call时暂停执行,转去执行exam子过程.exam(ByVal x As Integer, y As Integer)中的x,y就是形参只是有整型类型,在调用执行之前没有值.当由call转去执行exam时就将a,b的值分别赋值给x,y(但要注意x前有byval是按值传递即a将值给x两变量就没关系了.而y前什么也没有相当省略byRef按地址传递,即y和b在内存中用同一空间存储数据,当y值改变同时b值也改变.)所以当执行exam形参y值19,x值9,返回调用语句,a仍然是原值10但b值同y值一样是19程序运行后结果:
9 19
10 19
但如果调用语句是Call exam(a, a+b)时,即是将a,a+b(10,30)分别赋给x,y而y值不影响a+b表达式的值.
值传递时实参可以是变量,常量,或表达式
地址传递时,实参必须是变量