先看一個error
error: lvalue required as left operand of assignment|
i == 0 ? X = 1.0 : X *= x;
修改后
i == 0 ? (X = 1.0) : (X *= x);
也就是說條件運算符可以執行語句,當是賦值語句時要加括號規定優先級,不然會干擾程序判斷。
因為條件運算符作為三目運算符優先級低于所有其他運算符,賦值運算符=除外
如果是數據就簡單多了,比如
i == 0 ? 1.0 : 5;
(條件表達式) ? (結果1) : (結果2)
即當條件表達式為真時,整個表達式結果為結果1,否則結果為結果2
條件運算符和if else判斷語句可以等價互換,結果1和結果2可以是數據結果也可以是語句等等