是否可以在条件表达式中使用另一个条件表达式?

Is it possible to use another conditional expression inside a conditional expression?

我想知道 C 中的“?:”运算符。可以像这样在另一个条件运算符中使用条件运算符吗?

int a = 0;
a == 1?a += 1:a == 0?a += 2:a = 3;

这是一个非常糟糕的例子,但我希望你能理解我想问的问题。

是的,但您必须像这样使用括号:

a == 1?a += 1:(a == 0?a += 2:a = 3);

当然可以,像这样:

int a = 0;
a == 1?(a += 1):((a == 0)?(a += 2):(a = 3));

写法一样:

int a = 0;
if (a == 1)
    a += 1;
else
    if (a == 0)
        a += 2;
    else 
        a = 3;

阅读和理解起来更清晰。