bool bSwitch  = true;
  double dSum = 1 + bSwitch?1:2;

因此,“dSum”为:

a)= 1
b)= 2
c)= 3

结果简直太荒谬了,我为此感到沮丧...

我正在使用VS2008->“Microsoft(R)32位C/C++-Optimierungscompiler版本15.00.21022.08für80x86”

最佳答案

operator+比三元运算符?:具有更高的precedence

所以,这相当于

double dSum = ( 1 + bSwitch ) ? 1 : 2;

因此,您有了dSum == 1

10-01 17:29