【发布时间】:2015-03-12 15:07:46
【问题描述】:
对于像这样的表达式
x = a ? b : c ? d : e;
我了解因为 ?: 运算符具有右结合性,所以表达式被分组为
x = a ? b : (c ? d : e);
但是,评估顺序呢?关联性是否意味着 (c ? d : e) 分支首先被评估,然后它的答案作为参数传递给左边的 ?: 运算符?还是先评估 a ,然后根据返回 b 或评估 (c ? d : e) 分支?还是未定义?
【问题讨论】:
-
即使我能牢记关联性,为了清楚起见,我总是使用括号
-
1 > 2 ? cout << "yes" : cout << "no";
标签: c++ conditional operator-keyword evaluation