2个回答
展开全部
有三个
(1)按值传递
这种传递方式只能将实参的值传递给形参,而不能将运算后形参的值再传递给实参,即这种传递只能是单向的,既使形参的值发生了改变,此值也不会影响到调用然后将该值传递给对应的形参。如果实在参数是常量或表达式,则默认采用的是值传递,在传递时先计算表达式的值,然后将该值传递给对应的形参。
(2)按地址传递
这种传递方式不是将实在的参数的值传递给形参,而是将存放实在参数值的内存中的存储单元的地址传递给形参,因此形参和实参具有相同的存储单元地址,也就是说,形参和实参共用同一存储单元。在调用SUB过程或FUNCTION过程时,如果形参的值发生了改变,那么对应的实参的值也将随着改变,并且实参会将改变后的值带回调用该过的程序,即这种传递是双向的。如果实在参数是变量,则默认采用按地址传递。
(3)命名传递
前面讲的按值传递和按地址传递,是按照形参和实参在参数表中的位置一一对应传递的。有时我们在调用过程语句的实在参数表中所写的实在参数和在过程定义语句的形式参数表中所写的形式参数位置并不一一对应,这时就需要使用命名传递。
使用命名传递,在调用过程语句的实在参数表中的参数格式为:
<形式参数>:=<实在参数>
其含义为:将右边实在参数的值传递给左边的形式参数。
(1)按值传递
这种传递方式只能将实参的值传递给形参,而不能将运算后形参的值再传递给实参,即这种传递只能是单向的,既使形参的值发生了改变,此值也不会影响到调用然后将该值传递给对应的形参。如果实在参数是常量或表达式,则默认采用的是值传递,在传递时先计算表达式的值,然后将该值传递给对应的形参。
(2)按地址传递
这种传递方式不是将实在的参数的值传递给形参,而是将存放实在参数值的内存中的存储单元的地址传递给形参,因此形参和实参具有相同的存储单元地址,也就是说,形参和实参共用同一存储单元。在调用SUB过程或FUNCTION过程时,如果形参的值发生了改变,那么对应的实参的值也将随着改变,并且实参会将改变后的值带回调用该过的程序,即这种传递是双向的。如果实在参数是变量,则默认采用按地址传递。
(3)命名传递
前面讲的按值传递和按地址传递,是按照形参和实参在参数表中的位置一一对应传递的。有时我们在调用过程语句的实在参数表中所写的实在参数和在过程定义语句的形式参数表中所写的形式参数位置并不一一对应,这时就需要使用命名传递。
使用命名传递,在调用过程语句的实在参数表中的参数格式为:
<形式参数>:=<实在参数>
其含义为:将右边实在参数的值传递给左边的形式参数。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询