这里就不写出整个优先级运算表了,有兴趣的百度一下很多的,这里就写写自己平时容易出错的地方,后期也会在遇到时候不断加入完善
|
优先级问题 |
表达式 |
被误认为的结果 |
正确的结果 |
|
.优先级高于*,-> |
*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 |
本文列举了一些常见的运算符优先级误区,并给出了正确的解释。包括指针运算、位操作、赋值运算、算术运算和逗号运算符的使用场景。
8561

被折叠的 条评论
为什么被折叠?



