861.【C语言】C语言运算符优先级存在的问题

2023-11-22  本文已影响0人  七镜
优先级问题 表达式 人们可能误认为的结果 实际结果
.的优先级高于*;->操作符用于消除这个问题 *p.f p所指对象的字段f (*p).f 对p取f偏移,作为指针,然后进行解除引用操作*(p.f)
[]高于* int *ap[] ap是指向int数组的指针 int(*ap)[] ap是个元素为int指针的数组 int *(ap[])
函数()高于* int *fp() fp 是个函数指针,所指函数返回 int;int (*fp)() fp 是个函数,返回 int*
== 和 != 高于位操作符 (var & mask != 0) (val & mask != 0) var & (mask != 0)
== 和 != 高于赋值符 c = getchar() != EOF (c = getchar()) != EOD c = (getchar() != EOF)
算术运算高于移位运算符 msb << 4 + lsb (msb << 4) + lsb msb << (4 + lsb)
逗号运算符在所有运算符中优先级最低 i = 1, 2 i = (1, 2) (i = 1), 2
上一篇 下一篇

猜你喜欢

热点阅读