【发布时间】:2019-09-26 10:01:53
【问题描述】:
我正在学习 C++ 中的优先规则。其中条件运算符被称为具有从右到左的关联性。 我将此解释为表达式的评估从右开始并继续向左。 所以,对于下面的代码-
int a=1, b=2, c;
c=a>b? a=a*2: a=a+3;
cout<<c<<" "<<a;
我假设输出为
8 8
但实际输出是
4 4
我不明白这种关联性实际上是如何工作的,因为从上面的输出来看,在我看来,条件运算符具有从左到右的关联性。
【问题讨论】:
-
你为什么会期待
8?两个分支中只有一个执行,而不是同时执行。
标签: c++ right-to-left conditional-operator associativity left-to-right