c語言中,條件運算子的法則:
由高到低是:!(非),&&(與),||(或)
&&左邊為0則不看右邊運算,||左邊為1不看右邊!
例:
main()
{
int a=1,b=2,c=3,d;
d=!b>a&&c||c>2
printf("a=%d\n b=%d\n c=%d\n d=%d\n",a,b,c,d);
}
執行結果:a=1
b=0
c=3
d=1
程式執行說明:先執行!b>a即0>a,結果為0(b=0)
再執行0&&c結果為0,執行c>2結果為1
0||1結果為1
因為執行順序為右結合,所以將整個表示式的結果給 d為1
條件運算子:
(表示式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
c語言中,條件運算子的法則:
由高到低是:!(非),&&(與),||(或)
&&左邊為0則不看右邊運算,||左邊為1不看右邊!
例:
main()
{
int a=1,b=2,c=3,d;
d=!b>a&&c||c>2
printf("a=%d\n b=%d\n c=%d\n d=%d\n",a,b,c,d);
}
執行結果:a=1
b=0
c=3
d=1
程式執行說明:先執行!b>a即0>a,結果為0(b=0)
再執行0&&c結果為0,執行c>2結果為1
0||1結果為1
因為執行順序為右結合,所以將整個表示式的結果給 d為1
}
條件運算子:
(表示式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