//第乙個程式段
#include
intmain()
//輸出結果2342
對於k=
(a(a?a:c):(
(b?b:c)
;這個是巢狀。從右向左看條件運算子,
乙個乙個看。
對於(a(a?a:c):(
(b?b:c)
可以轉換為if
-else語句
if(aif(aelse k=c;
else
if(bk=b;
else
k=c;
//第二個程式段
#include
intmain()
//先算括號裡的,輸出為k=4,a=2,b=3,c=4;**
****
****
****
****
****
****
****
****
****
****
****
***k=a>b?
(b>c?1:
0):0
if((a>b)
&&(b>c)
) k=1;
//就是a>b執行()內的,之後(b>c)才可為1,否則為0也就是不滿足a>b,b>c就為0;
else k=0;
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
**k=a>b?
(b>c?1:
2):0
if(a>b)
if(b>c)
k=1;
else k=2;
else k=0;
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
總結:條件運算子中的巢狀是乙個條件運算在另乙個條件運算中,
是乙個條件運算子在其中的乙個表示式中,一般不帶括號。
一般就是這三種情形,遇到複雜的就要想到結合性是從右到左,
就是先算右邊的再算左邊的,有括號先算括號裡的,
這時就不用管條件運算子了,因為,括號的優先順序最高。
//條件運算子的優先順序高於賦值語句。
max=
(a>b)
?a:b;可改為max=a>b?a:b;
// x=aif
(ax=a;
else
x=b;
條件運算子巢狀
條件運算子 都知道就不細說了,最簡單也是最常用的例子 n a b a b 在c primer plus第六版180頁看到了乙個例子,如下所示 const char x 2 20 const char y quillstone for int i 0 i 3 i cout i 2 i x i y x ...
條件運算子
條件運算子 c提供條件表示式 conditional expression 作為表達if else語句的便捷方式,該表示式使用?條件運算子。該運算子分為兩個部分,需要三個運算物件。所以是三元運算子,也是c唯一的三元運算子 下面的 得到乙個數的絕對值 x y 0 y y 在 和 之間的內容就是條件表示...
條件運算子和逗號運算子
條件運算子 表示式1 表示式2 表示式3 運算規劃 如果表示式1為真,返回表示式2的結果,否則返回表示式3的結果 例如 a 1,b 2 a b a b 返回值為2 注意表示式是右結合的.例 a 1,b 2,c 3 a b a b?c b 相當於 a b a b?c b 返回值為3 逗號運算子 多個表...