这里就不写出整个优先级运算表了,有兴趣的百度一下很多的,这里就写写自己平时容易出错的地方,后期也会在遇到时候不断加入完善
优先级问题 |
表达式 |
被误认为的结果 |
正确的结果 |
.优先级高于*,-> |
*p.f |
(*p).f |
*(p.f)对p取f偏移,作为指针,然后进行解除操作 |
==和!=高于位操作 |
(var&mask !=0) |
(var&mask)!=0 |
Var & (mask !=0) |
==和!=高于赋值 |
C=getchar() !=EOF |
(c=getchar())!=EOF |
C=(getchaor()!=EOF) |
算术运算符高于位移运算法 |
Mask << 4+3 |
(Mask <<4)+3 |
Mask << (4+3) |
逗号运算符在所有运算符中优先级最低 |
i=1,2 |
I=(1,2) |
(i=1),2 结果为i=2 |