C语言中 '=='的优先级高于 '&' '|' '&&' '||'

之前一直以为 '=='的优先级低于  '&' '|' ,但是这是错误的,

 '=='的优先级高于 '&' '|' '&&' '||',同时使用时,记得加括号修改优先级。

 

第一优先级:[ ]             ( )           .           ->
        方括号,圆括号,对象,对象指针

第二优先级:-                  ~          ++       --               *                  &                !                  ( 类型 )        sizeof   
        取负,    按位取反,自增,自减,取值运算符,取地址符,逻辑非运算符,强制类型转换,长度运算符

第三优先级: /          *            %
          乘法,除法,取模

第四优先级:+   -
  表示加法,减法
  注意第四优先级中的 - 表示减法,而非第一优先级中的取负

第五优先级:               <<     >>
      分别表示左移,右移

第六优先级: > >=       < <=
      大于(等于)   小于(等于)

第七优先级:    ==          !=
  逻辑表达中    等于,不等于

第八优先级:&
  表示按位与,和取地址符不是一个概念,一般用法为 表达式&表达式

第九优先级:^
  表示按位异或,用法为 表达式^表达式

第十优先级: |
  按位或 用法为 表达式 | 表达式

第十一优先级:&&
  表示逻辑与

第十二优先级:||
  表示逻辑或

第十三优先级:?:
  表示条件运算符,用法为 表达式1?表达式2:表达式3
  如果表达式1成立,则结果为表达式2;不成立,则为表达式3

第十四优先级:= /= *= %= += -= <<= >>= &= ^= |=
  分别表示赋值运算,除后赋值,乘后赋值,取模后赋值,加后赋值,减后赋值,左移后赋值,右移后赋值,按位与后赋值,按位异或后赋值,按位或后赋值

第十五优先级: ,
  表示逗号运算符,用于表达式之间,从左到右,其值为最后一个表达式的值

 

参考:

1. C语言运算符优先级

posted @ 2024-09-11 16:50  無常  阅读(88)  评论(0编辑  收藏  举报