黑马程序员技术交流社区

标题: C语言运算符优先级 [打印本页]

作者: will123    时间: 2016-9-19 22:35
标题: C语言运算符优先级
先摘录谭浩强《C程序设计》对运算符优先级的两点说明:
1. 同一优先级的运算符,运算次序由结合方向来决定。
    例如:
    a) * 与 / 具有相同的优先级别,其结合方向为自左向右,因此3 * 5 / 4的运算次序是先乘后除;
    b) - 和 ++ 为同一优先级,结合方向为自右向左,因此 - i ++ 相当于 - ( i ++ )。
2. 从上述表中可以大致归纳出各类运算符优先级:
    初等运行符->单目运算符->算术运算符->关系运算符->逻辑运算符->条件运算符->赋值运算符->逗号运算符

经过分析总结,编成顺口溜6句以助记忆:


初等单目一二级, // 初等运算符和单目运算符分别是第1、2优先级
乘除求余加减移, // 这句里面的运算符全归为算术运算符,移表示移位
关系等于不等于, // 关系运算符(<  <=  >  >=)
按位与来异或或, // 位运算符优先级顺序: & -> ^ -> |
逻辑与或条件弱, // 逻辑运算符优先级顺序: && -> ||,后面跟着优先级比较低(弱)的条件运算符
赋值逗号一点破。 // 赋值,逗号最低
C:\Users\Administrator\Desktop\1[img]C:\Users\Administrator\Desktop\2C:\Users\Administrator\Desktop\3[/img]




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2