表达式
x = a ? b : c ? d : e;
据我所知,因为?:运算符具有正确的关联性,所以表达式被分组为
x = a ? b : (c ? d : e);
但是,评估顺序怎么样?结合性是否意味着首先评估(c?d:e)分支,然后它的答案作为参数传递给左?:运算符?或者首先进行评估,然后根据返回b或评估(c?d:e)分支?还是未定义?
答案 0 :(得分:5)
n3376 5.16 / 1
条件表达式从右到左分组。第一个表达是 在上下文中转换为bool(第4条)。它被评估,如果它 是的,条件表达式的结果是值 第二个表达式,否则表达第三个表达式。只有一个 评估第二个和第三个表达式。 每个值计算 并且对与第一表达相关的副作用进行测序 在每个值计算和与之相关的副作用之前 第二或第三个表达。
答案 1 :(得分:1)
对于条件运算符: