优先级 | 表达式 | 误认为结果 | 实际结果 |
.的优先级高于* (->操作符用于消除此问题) |
*p.f |
p所指对象的字段f (即,误认为是(*p).f) |
对p取f偏移,作为指针,然后进行解除引用操作 (即,实际为*(p.f)) |
[]高于* | int *p[] |
p是个指向int数组的指针 (即,误认为int (*p)[]) |
p是个元素为int指针的数组 (即,实际int *(p[])) |
函数()高于* | int *p() | 误认为int (*p)() | 实际int *(p()) |
==和!=高于位操作 | (val & mask !=0) | (val & mask)!=0 | val & (mask !=0) |
==和!=高于赋值符 | c=getchar() !=EOF | (c=getchar())!=EOF | c=(getchar()!=EOF) |
算术运算符高于位移运算符 | m<<4+1 | (m<<4)+1 | m<<(4+1) |
逗号运算符在所有运算符中优先级最低 | i=1,2 | i=(1,2) | (i=1),2 |
时间: 2024-12-30 02:01:32