我無法理解爲什麼下面的代碼段返回x而不是b。有條件的運算符錯誤
#include <iostream>
using namespace std;
int main()
{
int x = 12;
int a = 1;
int b = 0;
cout << "answer: " << (x < a && 1 ? a : (x > b && 0 ? b : x)) << endl;
return 0;
}
我的工作是:
x是大於一個[邏輯和)1 NOT下,移動到第二組括號。
x大於0 [logival和] 0,因此結果應該是'b'。
(既是聲明等同於真實的,不應該Result_if_true說法是輸出?)
'X> b && 0'裝置'(X> B)&&(的static_cast (0))',而不是'(x> b)&&(x> 0)'。 –
chris
2014-11-05 04:54:24
因此,因爲布爾值== 0,等於false。 邏輯T和F = F因此返回result_if_false? – Cirrus 2014-11-05 04:58:27
是的,這是正確的。 – chris 2014-11-05 05:10:37