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と評価されます。説明してください。