本声明将返回什么

时间:2014-11-23 11:58:17

标签: if-statement return

return p? p->height : 0;

有人可以解释一下这句话的含义,我知道吗? :表示if和else但我对return语句感到困惑。

我从本声明中理解的是,如果高度存在,它将返回p,否则它将返回0,如果我错了,请纠正我。

2 个答案:

答案 0 :(得分:2)

它实质上意味着:

if p evaluates to true:
    return p->height
else
    return 0

三元条件运算符只是写这个的简短方法。

答案 1 :(得分:0)

此问号表达式p ? p->height : 0;的评估结果为p->height0之一,具体取决于p的值。

这正是函数返回的内容。