C运算符优先级

优先口决

括号成员第一; //括号运算符[]() 成员运算符. ->

全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算*&

乘除余三,加减四; //这个"余"是指取余运算即%

移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等

等于(与)不等排第七; //即== !=

位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)

"三分天下"八九十;

逻辑或跟与; //逻辑运算符:|| 和 &&

十二和十一; //注意顺序:优先级(||) 低于 优先级(&&)

条件高于赋值, //三目运算符优先级排到 13 位只比赋值运算符和","高//需要注意的是赋值运算符很多!

逗号运算级最低! //逗号运算符优先级最低
              Turbo C运算符的优先次序
━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━
                    表达式                              ┃优先级
────────────────────────────╂────
()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员)┃ 最高
────────────────────────────┃ ↑
!(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址)┃ │
────────────────────────────┃ │
   *(指针所指内容) type(函数说明) sizeof(长度计算)    ┃ │
────────────────────────────┃ │
     *(乘)     /(除)     %(取模)                        ┃ │
────────────────────────────┃ │
     +(加)     -(减)                                    ┃ │
────────────────────────────┃ │
     <<(位左移)          >>(位右移)                     ┃ │
────────────────────────────┃ │
     <(小于)   <=(小于等于)   >(大于)   >=(大于等于)    ┃ │
────────────────────────────┃ │
     ==(等于)       !=(不等于)                          ┃ │
────────────────────────────┃ │
     &(位与)                                            ┃ │
────────────────────────────┃ │
     ^(位异或)                                          ┃ │
────────────────────────────┃ │
     |(位或)                                            ┃ │
────────────────────────────┃ │
     &&(逻辑与)                                         ┃ │
────────────────────────────┃ │
     ||(逻辑或)                                         ┃ │
────────────────────────────┃ │
     ?:(?表达式)                                        ┃ │
────────────────────────────┃ │
     =    +=   -=(联合操作)                             ┃ │
────────────────────────────┃ │
     ,(逗号运算符)                                      ┃ 最低

/**********************************另一表*************************/

  运算符(优先级从高到低) 结合性
  ++(后缀) --(后缀) ( )(调用函数) [] {} (组合文字) . -> 从左到右
  ++(前缀) --(前缀) -+~! sizeof * (取值) &(地址) (type) (都是一元运算) 从右到左
  (type name) 从右到左
  * / % 从左到右
  + -(二者都是二元运算) 从左到右
  << >> 从左到右
  < > <= >= 从左到右
  == != 从左到右
  & 从左到右
  ^ 从左到右
  | 从左到右
  && 从左到右
  || 从左到右
  ?:(条件表达式) 从右到左
  = *= /= %= += -= <<= >>= &= |= ^= 从右到左
  ,(逗号运算符) 从左到右

你可能感兴趣的:(C运算符优先级)