c++条件表达式的输出是多少

为啥这个条件表达式输出结果是1

img

(1)!的优先级高于>,所以先执行!10,!10=0,所以0>3为假,根据条件表达式,应执行“:”之后的语句即“1”。所以a=1
(2)需注意“:”后面的表达式不要误以为是逗号表达式。逗号表达式的写法应该是:a = (!10 > 3) ? 2 + 4 :(1, 2, 3);这样的话结果是3.

!10取反为0,即!10>3为假,执行冒号后面的语句。

三元运算符(也叫三目运算符)经常用于取代某个类型的 if-then-else 语句。条件运算符的符号表示为“?:”
(!10>3)?2+4:1,2,3 运行了一下确实为1 但是这样写 其实不符合常规的写法
分析下这个句子!10>3如果成立就是 2+4 语句 如果不成立就是1,2,3 但是为什么只输出1,因为三目运算符格式在这里,要符合写的标准才行。
希望对题主有所帮助,可以的话还请点下采纳!

这样写无法编译啊