表达式(!10>3)?2+4:1,2,3的值是多少?
1
!10 > 3等价于0 > 3为假
返回冒号后面的部分1
注意这里整体1,2,3不是逗号表达式
可以这样看
( (!10 > 3) ? 2 + 4 : 1) , 2, 3
化简之后为
(0 ? 6 : 1), 2 , 3
如果加了括号(1,2,3)才是逗号表达式返回最后一个数3
所以整体的值为1
值是3
(!10 > 3) ? 2 + 4 : 1 , 2, 3先执行 (!10 > 3) 判断是否为true,由于!10等价于false所以等价于0,所以 (!10 > 3)结果是false,所以(!10 > 3) ? 2 + 4 : 1 输出1,改变一下就变成了1,2,3逗号运算输出最后一个值,所以答案就是3
3
逗号运算符的优先级别在所有运算符中最低,它的值为最后一个表达式的值。