f(p,p)
如果 p 的值在调用前被初始化为 5,返回值是多少?请注意,第一个参数是通过引用传递的,而第二个参数是通过值传递的。
int f (int & x, int c )
{
c = c − 1;
if ( c == 0 ) return 1;
x = x + 1;
return f ( x, c ) * x;
}
(A) 3024
(B) 6561
(C) 55440
(D) 161051
根据我的说法,它是 3024,因为我们从
f(5,5)
f(6,4)*6
f(7,3)*7
f(8,2)*8
f(9,1)*9
then开始1
,而且我对按引用部分调用有点困惑return f ( x, c ) * x
,每次调用后 x 的值会改变还是保持不变?