这个返回如何工作?

时间:2016-10-26 14:58:22

标签: c function operators

我找到了这段代码,我试图弄清楚它是如何工作的,但我不会在返回语句后理解这部分。有人可以解释一下吗?

int f(int y)
{
  return (y<=1)?1:y*f(y-1);
}

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