目录
前言
这是在软考中软件设计师有关的考点,关于程序设计基础——传值与传址
1.基础
传值和传址是两种不同的参数传递方式。
-
传值(传递值)是指将参数的副本传递给函数或方法。在函数或方法中对参数的任何修改不会影响原始值。这是因为在传值时,实际上是复制了一份参数的值,然后将复制的值传递给函数或方法。
-
传址(传递地址)是指将参数的内存地址传递给函数或方法。在函数或方法中对参数的任何修改都会影响到原始值。这是因为在传址时,实际上是将参数的内存地址传递给函数或方法,函数或方法可以通过这个地址访问并修改原始值。
传值和传址的选择取决于所需的功能和效果。
传值可以保护原始值不受函数或方法的影响,
而传址可以使函数或方法能够修改原始值。
在具体的编程语言中,参数传递的方式可能有所不同,需要根据语言的规范和需求来确定使用哪种方式。
2.实际计算
题目:函数f、g的定义如下,执行表达式“y=f(2)”的运算时,函数调用g(la)分别采用引用调用方式和值调用方式,则该表达式结束后y的值分别为(20)、(6)
相关解析
引用调用计算步骤:
- 执行y=f(2),传参x=2至f(x)
- la=x+1=2+1=3
- g(la)采用引用调用,在g(la)中,x=x * x+1=3 * 3+1=10,由于是引用调用,会影响形参la的值,所以la=10
- 计算la * x=10 * 2=20
值调用计算步骤:
- 执行y=f(2),传参x=2至f(x)
- la=x+1=2+1=3
- g(la)采用值调用,在g(la)中,x=x * x+1=3 * 3+1=10,由于是值调用,不会影响形参la的值,所以la=3
- 计算la * x=3 * 2=6