【问题标题】:What this Statement will return本声明将返回什么
【发布时间】:2026-02-03 23:05:02
【问题描述】:
return p? p->height : 0;

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

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

【问题讨论】:

  • 我不会说“高度存在”,而是如果p 不为空。
  • 这个语句还有其他写法吗?
  • 解释你的期望,这个问题太开放了。
  • 可以写成if(p != null) return p-> height else 0;
  • 当然,我鼓励您避免使用“老式”C 风格。

标签: if-statement return


【解决方案1】:

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

这正是函数返回的内容。

【讨论】:

    【解决方案2】:

    本质上是指:

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

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

    【讨论】:

    • 这比接受的答案恕我直言更好,因为您已经提到这是使用三元运算符。 +1。