我找到了这段代码,我试图弄清楚它是如何工作的,但我不会在返回语句后理解这部分。有人可以解释一下吗?
int f(int y)
{
return (y<=1)?1:y*f(y-1);
}
答案 0 :(得分:4)
此:
int f(int y)
{
return (y<=1) ? 1 : y*f(y-1);
}
相当于:
int f(int y)
{
if(y <= 1)
{
return 1;
} else
{
return y*f(y-1);
}
}
现在应该清楚,它是一个使用The ternary (conditional) operator in C的递归函数。
三元运算符具有以下一般形式:
条件? a:b
如果condition
评估为 True ,那么a
将被执行,否则b
。