为什么会出现错误"expression is not acceptable"?

Why does the error "expression is not acceptable" appear?

(a > b) ? c = 10 : (a < b) ? c = 20 : c = 30;

为什么此代码会产生一个名为“expression is not acceptable”的错误??

错误消息说 "c = 30" 这部分出错了。

因为三元运算符 ?: 优先于 =,表达式被解析为:

((a > b) ? c = 10 : (a < b) ? c = 20 : c) = 30;

因为你不能"assign"到(a > b) ? c = 10 : (a < b) ? c = 20 : c,你的编译器错误。你想要:

(a > b) ? c = 10 : (a < b) ? c = 20 : (c = 30);

不过这样写真的更好:

c = (a > b) ? 10 : (a < b) ? 20 : 30;