在C语言中,运算符优先级是一个比较麻烦的概念,如果搞不清楚优先级可能会产生一些难以察觉的错误
第一优先级:[ ] ( ) . ->
第一优先级包括方括号,圆括号,对象,对象指针
第二优先级:- ~ ++ – * & ! ( 类型 ) sizeof
第二优先级包括取负,按位取反,自增,自减,取值运算符,取地址符,逻辑非运算符,强制类型转换,长度运算符
第三优先级: / * %
第三优先级包括乘法,除法,取模
第四优先级:+ -
表示加法,减法
注意第四优先级中的 - 表示减法,而非第一优先级中的取负
第五优先级:<< >>
分别表示左移,右移
第六优先级: > >= < <=
大于(等于) 小于(等于)
第七优先级: == !=
逻辑表达中的等于,不等于
第八优先级:&
表示按位与,和取地址符不是一个概念,一般用法为 表达式&表达式
第九优先级:^
表示按位异或,用法为 表达式^表达式
第十优先级: |
按位或 用法为 表达式 | 表达式
第十一优先级:&&
表示逻辑与
第十二优先级:||
表示逻辑或
第十三优先级:?:
表示条件运算符,用法为 表达式1?表达式2:表达式3
如果表达式1成立,则结果为表达式2;不成立,则为表达式3
第十四优先级:= /= *= %= += -= <<= >>= &= ^= |=
分别表示赋值运算,除后赋值,乘后赋值,取模后赋值,加后赋值,减后赋值,左移后赋值,右移后赋值,按位与后赋值,按位异或后赋值,按位或后赋值
第十五优先级: ,
表示逗号运算符,用于表达式之间,从左到右,其值为最后一个表达式的值
————————————————
版权声明:本文为CSDN博主「爱一袭铁路」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_51054450/article/details/112748644