浅谈形参和实参

  • Post author:
  • Post category:其他



以前对形参和实参的感觉总是很模糊,为什么模糊不清呢?给自己回答总是:没有好好总结!


这两个月软考,多次遇到这问题,于是想把这知识点总结一下。


1、定义:


实参:全名叫“实际参数”,它可以是常量、变量、表达式、函数等,是在调用时传递时传递给函数的参数


形参:全称叫“形式参数”,它不是实际存在的变量,所以又叫“虚拟变量”



2、功能:


他们都是用来数据传送的。



3、区别:


实参:实参出现在主调函数中,在进行函数调用的时候,实参必须有确定的值。


因此预先给实参赋值,输入等方法使实参获得确定的值。以便把确定的值传给形参(“虚拟变量”)



形参:只有在被调用时才分配内存单元,当调用结束后,马上释放所分配的内存单元。因此形参只在函数内部有效。



4、  说到这里,不得不说,函数参数的传递机制。


参数的传递机制分:值传递(Byval)和引用传递(ByRef)。


(1)值传递(Byval):顾名思义传递的值 。


比如A函数调用B函数,如果AB两个函数采用的按值传递来传递参数。那么就是A函数调用B函数,从B函数传过去的是实参的值,就是在堆栈中开辟了内存空间以存放由主调函数A放进来的实参的值,从而形成了实参的一个副本,操作的是实参的副本,因此值传递是不改变实参的值的。



(2)引用传递(ByRef)


“引用”其实就是一个路标,指向目的地。因此引用传递其实传递的是地址(即实参的地址)。是对实参的操作,因此会改变实参的值。








版权声明:本文为u010108195原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。