C语言优先级
共44个运算符
初等,4个: ( ) [ ] -> 指向结构体成员 . 结构体成员
单目,9个: ! ~ ++ -- -负号 (类型) *指针 &取地址 sizeof长度
算术,5个: * / % + -减
位移,2个: << >>
关系,6个: < <= > >= == 等于 != 不等于
位逻,3个: & 按位与 ^ 按位异或 | 按位或
逻辑,2个: && 逻辑与 || 逻辑或
条件,1个,三目: ? :
赋值,11个: = += -= *= /= %= >>= <<= &= ^= |=
逗号,1个: ,
结合方向自右向左的只有三类:赋值、单目和三目
同一优先级的运算顺序由结合方向决定
Turbo C运算符的优先次序
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表达式 ┃优先级
────────────────────────────────
()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员)最高
──────────────────────────── ↑
!(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址)
──────────────────────────── │
*(指针所指内容) type(函数说明) sizeof(长度计算)
────────────────────────────
*(乘) /(除) %(取模)
────────────────────────────
+(加) -(减)
────────────────────────────
<<(位左移) >>(位右移)
────────────────────────────
<(小于) <=(小于等于) >(大于) >=(大于等于)
────────────────────────────
==(等于) !=(不等于)
────────────────────────────
&(位与)
────────────────────────────
^(位异或)
────────────────────────────
|(位或)
────────────────────────────
&&(逻辑与)
────────────────────────────
||(逻辑或)
────────────────────────────
?:(?表达式)
────────────────────────────
= += -=(联合操作)
────────────────────────────
,(逗号运算符) 最低
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━