表达式
算术运算符的优先级和结合性:
表达式的值要按照运算符的优先级从高到低顺序计算。
- -i++ 等价于 -(i++)
- e的2x次方 等价于 exp(2*x)
- x = y =3 等价于 x=(y=3)
优先级
,<赋值运算符 < (? :) < || < && < | < ^ < & < (== , !=) < (<,<=,>=,>) < (<<,>>) < 算术运算符 < (! + - ~ ++ --) < ()
- 比较运算符 左结合(从左到右结合)
关系运算符 > 逗号运算符
赋值表达式
右侧表达式的类型自动转换为左侧变量的类型
关系表达式
返回值是比较的结果,是一个逻辑量。C语言没有逻辑数据类型 ,所以她的数据类型是整型。
逻辑表达式
- 逻辑运算符:(!, &&, ||)
条件表达式
exp1 ? exp2 : exp3;
- (n>0) ? 2.9 : 1;
- n=-10时。结果是1.0,以下是原因
- 执行逻辑:先判断条件
- 类型统一:分支类型不同时,自动隐式转换为兼容类型
- 示例:n=-10 时,(n>0)?2.9:1 → 1 隐转为 1.0
逗号表达式
返回值是最右边的表达式的值
位运算
| ~ | 取反 |
