【发布时间】:2020-11-15 16:23:55
【问题描述】:
如果 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;
}
【问题讨论】:
-
你试过了吗?
-
代码无效。
-
@CiaPan - 你为什么说代码无效?没关系,唯一的限制是您不能将整数文字作为
x传递(并且您必须删除 Unicode 字符并用 ASCII 替换它们) -
我说这是无效的,因为
if (c = = 0)中的两个连续的=运算符不符合C++ 语法。
标签: c++ recursion parameter-passing pass-by-reference call-by-value