unsigned long fib(unsigned int n)
{
return n == 0 ? 0 : fib2(n, 0, 1);
}
unsigned long fib2(unsigned int n, unsigned long p0, unsigned long p1)
{
return n == 1 ? p1 : fib2(n - 1, p1, p0 + p1);
}
我试图在单次递归中编写斐波纳契,我发现了代码。但我第一次看到
return n == 0 ? 0 : fib2(n, 0, 1);
代码。什么是"?"
和":"
,我找不到任何关于那个。那是什么?
答案 0 :(得分:0)
? :
是C中的三元运算符。它类似于if else
语句。声明
return exp1 ? exp2 : exp3;
如果exp2
为true,则返回exp1
,否则返回exp3
。它相当于
if(exp1)
return exp2;
else
return exp3;