C运算符优先级
时间:2010-07-01 来源:Alan0521
优先口决
括号成员第一; //括号运算符[]() 成员运算符. ->
全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算*&
乘除余三,加减四; //这个"余"是指取余运算即%
移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等
等于(与)不等排第七; //即== !=
位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)
"三分天下"八九十;
逻辑或跟与; //逻辑运算符:|| 和 &&
十二和十一; //注意顺序:优先级(||) 低于 优先级(&&)
条件高于赋值, //三目运算符优先级排到 13 位只比赋值运算符和","高//需要注意的是赋值运算符很多!
逗号运算级最低! //逗号运算符优先级最低
Turbo C运算符的优先次序
━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━
表达式 ┃优先级
────────────────────────────╂────
()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员)┃ 最高
────────────────────────────┃ ↑
!(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址)┃ │
────────────────────────────┃ │
*(指针所指内容) type(函数说明) sizeof(长度计算) ┃ │
────────────────────────────┃ │
*(乘) /(除) %(取模) ┃ │
────────────────────────────┃ │
+(加) -(减) ┃ │
────────────────────────────┃ │
<<(位左移) >>(位右移) ┃ │
────────────────────────────┃ │
<(小于) <=(小于等于) >(大于) >=(大于等于) ┃ │
────────────────────────────┃ │
==(等于) !=(不等于) ┃ │
────────────────────────────┃ │
&(位与) ┃ │
────────────────────────────┃ │
^(位异或) ┃ │
────────────────────────────┃ │
|(位或) ┃ │
────────────────────────────┃ │
&&(逻辑与) ┃ │
────────────────────────────┃ │
||(逻辑或) ┃ │
────────────────────────────┃ │
?:(?表达式) ┃ │
────────────────────────────┃ │
= += -=(联合操作) ┃ │
────────────────────────────┃ │
,(逗号运算符) ┃ 最低
/**********************************另一表*************************/
运算符(优先级从高到低) | 结合性 | |
++(后缀) --(后缀) ( )(调用函数) [] {} (组合文字) . -> | 从左到右 | |
++(前缀) --(前缀) -+~! sizeof * (取值) &(地址) (type) (都是一元运算) | 从右到左 | |
(type name) | 从右到左 | |
* / % | 从左到右 | |
+ -(二者都是二元运算) | 从左到右 | |
<< >> | 从左到右 | |
< > <= >= | 从左到右 | |
== != | 从左到右 | |
& | 从左到右 | |
^ | 从左到右 | |
| | 从左到右 | |
&& | 从左到右 | |
|| | 从左到右 | |
?:(条件表达式) | 从右到左 | |
= *= /= %= += -= <<= >>= &= |= ^= | 从右到左 | |
,(逗号运算符) | 从左到右 |