在函数调用中,引用调用方式将( )。下面所定义函数foo为值调用方式,函数g( )第一个参数采用值调用、第二个参数采用引用调用方式传递数据。若有表达式y=foo(2),则foo调用执行之后,y被赋值为(请作答此空)。

- A.5
- B.6
- C.7
- D.8
正确答案及解析
正确答案
C
解析
传值调用:形参取是实参值,形参改变不会导致调用点所传实参值发生改变。引用(传址)调用:形参取是实参地址,即相当于实参存储单元地址引用,因此其值改变同时就改变了实参值。在本题中,首先在foo()函数中,传入给x值为2,然后b值为1,接下来调用g()函数,x值为2,所以g()函数b值为2(值传递),b值为1,所以g()函数x值为1(地址传递,故x值变化,会引起foo()函数中b值变化)。经过g()函数一系列语句,b=3,x=5。则foo()中b值变成5,最终foo()函数返回值为5+2=7。





