这行三元运算符的语法是什么

What's Syntax about this line of Ternary Operator

我尝试了很多时间来理解它是如何工作的或者它的语法代码是什么?

greatest=(a>b&&a>c)?a:(b>c)?b : c;

我知道三元运算符的主要语法

但最重要的是我不知道怎么会这样

谢谢。

这个运算符本质上类似于这些 if-else 语句

if ( a > b && a > c )
{
    greatest = a;
}
else if ( b > c )
{
    greatest = b;
}
else
{ 
    greatest = c;
}

要使包含两个嵌套条件运算符的表达式更清晰,请使用括号

greatest = ( a > b && a > c ? a: (  b > c ? b : c ) );    

您可以使用标准算法 std::max 而不是具有两个嵌套条件运算符的表达式。例如

greatest = std::max( { a, b, c } );