zoukankan      html  css  js  c++  java
  • C语言:C运算符优先级

    元素单目乘除余,

    加减移位大小等,

    位与异或逻与或,

    条件赋值组合逗。
     
    元素:   ()  []   ->   .
    单目:    !   ~   ++   --   (type)类型转换   *   &   sizeof
    乘除余:*   /   %
    加减:    +   -
    移位:    <<   >>
    大小:    <   <=    >   >=
    等:        ==   !=
    位与:    &
    位异或:^
    位非:    |
    逻与:    &&
    逻或:    ||
    条件:    ?:
    赋值:    =
    组合:    +=   /=   -=   *=
    逗:        ,
     
    ★单目运算符、赋值是“自右向左”,所以*p++会被解释成*(p++),而不是(*p)++。
    其他运算符结合性都是“自左向右”,所以a,b,c等价于 (a,b),c 而不是a,(b,c)。
    ★单目运算符低于元素运算符,所以定义一个函数指针p,要写成 (*p)(),如果写成*p(),会被解释成*((p))。
    ★类型转换也是单目运算符,优先级与其他单目一致,注意单目是“自右向左”结合的。
    ★与或异或并不同级:与>(异或)>或。
    ★赋值运算符不能保证任何求值顺序,所以 y[i]=x[i++] 是不可预测的,y[i]中的i可能是自增后的,也可能是自增前的。同理 y[i++]=x[i]也是不可预测的
  • 相关阅读:
    2020-03-1811:29:37springboot与任务
    2020-03-17 20:18:50springboot整合rabbitmq
    2020.03.17 springboot缓存相关
    前端JS面试
    npm 常用指令
    ES8新特性
    ES7新特性
    ES6新特性
    SpringBoot
    SpringBoot
  • 原文地址:https://www.cnblogs.com/wuqi1003/p/12239625.html
Copyright © 2011-2022 走看看