【发布时间】:2013-02-14 09:51:39
【问题描述】:
如果p的值在之前初始化为5,f(p,p)的返回值是多少
称呼?注意第一个参数是引用传递,而第二个参数是值传递。
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
(四) 161051
据我说它是 3024,因为我们从
f(5,5)
f(6,4)*6
f(7,3)*7
f(8,2)*8
f(9,1)*9
然后1,我对引用部分return f ( x, c ) * x的调用有点困惑
每次调用后 x 的值会改变还是保持不变?
【问题讨论】:
-
int f (int & x, int c )是 C 中的语法错误。您使用的是 C++ 吗? -
它是在硕士竞争考试中被问到的......我认为它只是 c 中的代码
-
也许这是一个技巧问题? C 没有“引用”;只有指针。
-
该代码在 C 中无效。该代码在 C++ 中具有不可预测(未指定)的行为。换句话说,A-D 答案都不适用。