美文网首页
861.【C语言】C语言运算符优先级存在的问题

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

作者: 七镜 | 来源:发表于2023-11-22 16:01 被阅读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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/jimiwdtx.html