问题
单项选择题
函数f()、g()的定义如下所示。己知调用f时传递给其形参x的值是1,若以传值方式调用g,则函数f的返回值为(1);若以传引用方式调用g,则函数f的返回值为(2)。
2()
A.3
B.4
C.6
D.7
答案
参考答案:B
解析:
在传值调用方式下,将实参的值传递给形参,分配给实参变量和形参变量的存储单元之间无相关性,各自使用,互不干扰,在引用调用方式下,实参变量和形参变量的对应的存储单元是同一个,在被调用函数中修改形参实质上就修改了实参变量的值。对于本题,在传值方式下,函数f的参数x、局部变量a和函数g的参数y分别对应不同的存储单元。因此,已传值方式调用g,函数f执行结束时,返回值为3。
在传引用方式下,函数f的参数x、局部变量a分别对应不同的存储单元,函数g的参数y与实参x引用同一个存储单元。因此,以传值方式调用g,函数f执行结束时,返回值为4。