在讨论形参和实参之前,先了解下For的机制。
以下句为例,
For i = min to max step t
'
Next i
对于循环变量i,每一次next i后,先执行一次i=i+t,接着判断i>=max,若为真则继续执行循环体,否则跳出。
好了,接下来说形参、实参的问题。
在sub suba(k,s) 过程,没有ByVal关键字,则默认为ByRef,即以传址的方式运行过程(过程中k和s值的改变会影响到窗体点击事件中的k和s的值)。
for k=1 to 2
call suba(k,s)
s=s+k
next k
循环开始:k=1,s=0
运行过程:k=11+1=2,s=6
退出过程:k=2,s=6+2=8
next k:k=2+1=3,s=8
判断:k=3>2,退出循环。
于是,最后k=3,s=8
过程中的k和s为形参,窗体点击事件中的k和s为实参。
以ByRef(传址)方式运行过程,形参的改变即为实参的改变。
你的代码中第三行:
void rowSum(int a[][4], int nRow)
其中括号里面的两个参数a和nRow就是形参,也就是说,在函数定义的时候给出的参数叫做形参。
而在主程序中调用该函数的语句:
rowSum(table,3);
其中的table和3就是实参,即,函数调用时给出的参数叫做实参。
函数的调用过程是把实参的值送给形参,然后由形参在函数内部进行计算。
(table,3)的含义,table是一个二维数组(本质上是一个指向一维数组的指针)名称,而3表示行数。
以上就是关于VB程序调用中的形参和实参问题全部的内容,包括:VB程序调用中的形参和实参问题、关于一个c++程序中调用函数的实参和形参的问题、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)