int a=1,b=2,c=3;
int x=1;
int y=10;
a = x ? b : c;
cout<< a; // Outputs 2 (the value of b)
a = y ? b : c;
cout<< a; // Outputs 2 (the value of b)
现在,请看以下内容。
a=0;
x=0;
a = x ? b : c;
cout<< a; // Outputs 3 (the value of c !!!!)
为什么这种不寻常的行为?仅当 a 和 x 都为 0 时,表达式的计算结果为false,否则,始终为true。请解释。