C++ C++;嵌套条件运算符求值顺序
对于这样的表达C++ C++;嵌套条件运算符求值顺序,c++,conditional,operator-keyword,evaluation,C++,Conditional,Operator Keyword,Evaluation,对于这样的表达 x = a ? b : c ? d : e; 我理解,因为?:运算符具有正确的关联性,所以表达式被分组为 x = a ? b : (c ? d : e); 但是,评估的顺序如何?结合性是否意味着(c?d:e)分支首先求值,然后将其答案作为参数传递到左侧?:运算符?或者是先计算a,然后根据返回的是b还是(c?d:e)分支进行计算?还是未定义?对于条件运算符: 首先计算第一个操作数 根据第一个的值计算第二个或第三个(但不是两者) 对于条件运算符: 首先计算第一个操作数 根据第
x = a ? b : c ? d : e;
我理解,因为?:运算符具有正确的关联性,所以表达式被分组为
x = a ? b : (c ? d : e);
但是,评估的顺序如何?结合性是否意味着(c?d:e)分支首先求值,然后将其答案作为参数传递到左侧?:运算符?或者是先计算a,然后根据返回的是b还是(c?d:e)分支进行计算?还是未定义?对于条件运算符:
- 首先计算第一个操作数李>
- 根据第一个的值计算第二个或第三个(但不是两者)
- 首先计算第一个操作数李>
- 根据第一个的值计算第二个或第三个(但不是两者)
即使我能记住关联性,为了清楚起见,我还是会使用括号
1>2?即使我能记住关联性,我也会为了清楚起见总是使用括号1>2?我的理解是否正确:“a”转换为bool,如果为真,“b”是结果,如果为假,则对(c?d:e)分支求值?我的理解是否正确:“a”转换为bool,如果为真,“b”是结果,如果为假,则对(c?d:e)分支求值?