参数传递课件讲解_第1页
参数传递课件讲解_第2页
参数传递课件讲解_第3页
参数传递课件讲解_第4页
参数传递课件讲解_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

测绘程序设计与应用参数传递主讲教师:吴迪参数传递Section在调用一个过程时,一般主调过程与被调过程之间有数据传递,也就是要把主调过程的实参传递给被调过程的形参,完成实参与形参的结合,例如上例中调用Sub过程时,将实参(5,6,h)传递给形参(x,y,he)。数组作参数传递传值和传址在VB中,实参与形参的结合有两种方法:传值(ByVal)和传址(ByDef)。区分两种传递方法是看形参前有无“ByVal”关键字。传址又称为引用,是默认的参数传递方法。传址的结合过程是:当调用一个过程时,将实参的内存地址传递给形参。因此在被调过程体中对形参的操作实际是对相应实参的操作,实参的值就会随过程体内对形参值的改变而改变。传值的结合过程是:当调用一个过程时,系统将实参的值复制给形参,实参与形参各自占用不同的内存单元,过程调用结束时,形参所占的内存单元也同时被释放。因此,在过程体内对形参的操作不会影响到实参。现有如下过程,体会传址与传值的区别:SubTry(xAsInteger,yAsInteger)

DimtempAsIntegertemp=xx=yy=tempForm1.Print"x=";x,"y=";yEndSub在下面的事件过程中调用上述过程:SubForm_Click()DimaAsIntegerDimbAsIntegera=10

b=20Print"a=";a,"b=";bcallTry(a,b)Print"a=";a,"b=";bEndSub运行程序,单击窗体,输出结果如下图所示。由此可以看到,在过程Try中交换了两个形参的值,调用结束返回事件过程后,两个实参的值也被改变了。传址调用如果不想改变实参的值,可将过程Try修改如下:SubTry(ByValxAsInteger,ByValyAsInteger) DimtempAsInteger temp=x

x=y

y=temp

Form1.Print"x=";x,"y=";yEndSub仍旧用上面的Form_Click()事件过程去调用,则窗体上的输出结果如下图所示。可以看到形参值的改变没有影响实参。传值调用在VB中允许把数组作为实参传递给一个过程。这时,应将数组名分别放入实参表和形参表中,并略去数组的上下界,但数组名后的小括号不能省,以免与普通变量混淆。数组只能通过传址方式进行传递,也就是说,用数组作过程参数时,可以将实参数组的全部元素传送给一个过程,而形参数组中各元素的改变将被带回到实参数组。有时不需要把整个数组传送给通用过程,可以只传送所需要的某个元素,只要在实参数组名后的小括号内写上要传送的元素的下标。这时,形参不需要定义成数组,只要定义成与作实参的数组元素同类型的变量即可。这种用法与前面介绍的传值或传址调用类似,例如:CallTest(array(5,3))提示通过过程传送参数时,实参与对应的形参的类型应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论