| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3248 人关注过本帖
标题:[求助]请问什么是形参?什么是实参?
只看楼主 加入收藏
lsdm
Rank: 1
等 级:新手上路
帖 子:140
专家分:0
注 册:2006-1-7
收藏
 问题点数:0 回复次数:5 
[求助]请问什么是形参?什么是实参?
请问什么是形参?什么是实参?本人是初学者,对参数的传递不能理解,请那位高手能否用通俗的语言解释一下,谢谢!!
搜索更多相关主题的帖子: 形参 语言 参数 
2006-03-22 10:33
hityuqing
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-3-22
收藏
得分:0 

首先实参和形参所处位置不同,实参一般放在事件代码中有确定的值.而形参是在过程或函数中,形参类型确定但值不确定.
如下:
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表达式的值.

值传递时实参可以是变量,常量,或表达式
地址传递时,实参必须是变量


2006-03-22 11:39
lsdm
Rank: 1
等 级:新手上路
帖 子:140
专家分:0
注 册:2006-1-7
收藏
得分:0 
谢谢楼上的MM,模模糊糊有些理解了,
请问CALL是什么意思?如何使用啊?
请您指点,谢谢!!(不好意思,书上没找到)

2006-03-22 16:20
aviq1024
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-3-17
收藏
得分:0 
调用
2006-03-22 16:49
lsdm
Rank: 1
等 级:新手上路
帖 子:140
专家分:0
注 册:2006-1-7
收藏
得分:0 
谢谢!

2006-03-22 16:56
VB爱上我
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:478
专家分:52
注 册:2005-10-14
收藏
得分:0 

形参 是定义函数时在括号里定义的变量,它只是申明用的。没有值的。
实参 是调用函数时传给形参的值。有值的。



IT618资讯网 提供服务端开发,前端开发,网页特效,热门开源系统研究,软件下载,站长建站,淘宝开店等学习资料.
2006-03-22 17:29
快速回复:[求助]请问什么是形参?什么是实参?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024462 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved