一、算述表达式 优先级高 左结合
赋值表达式 优先级低 右结合
二、关系表达式(比较)
1、关系表达式(左结合):
优先级次于算述表达式
(1)<、>、<=、>=优先级高
(2)==(等于)、!=(不等于)优先级低
2、成立不成立
成立:命题为真(true)值为1
不成立:命题为假(false)值为0
三、条件表达式(三目运算符)
1、格式:
表达式1 ? 表达式 2: 表达式3
2、含义:
整个表达式的值由表达式1决定;
若表达式1成立,则整个条件表达式的值为表达式2的值;
若表达式1不成立,则整个条件表达式的值为表达式3的值。
例:
求三数表达式:
d=x>y?x:y;
e=d>z?d:z
或
d=x>y?(x>z?x:z):(y>z?y:z)
3、表达式1的成立与不成立
非0(值为1)——>成立
0——>不成立
4、优先级:只高于赋值法
结合性:
右结合
四、逻辑表达式
1、逻辑表达符
!(单目)取反 非运算 优先级高于算述运算符
&&(双目)并且 或运算 优先级低于运算符
||(双目)或者 与运算 运算符低于&&
&&:
两个表达式都成立时成立 否则不成立
||:
两个表达式其中任何一个成立就成立,只有两个都不成立时不成立
3、短路问题:
||:
左边成立情况下编译器不计算右边
&&:
左边不成立情况下编译器不计算右边