------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
概念
1.优先级:C语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运 算。而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向
2.结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至 右,即先左后右。如有表达式x-y+z则y应先与"-"号结合,执行x-y运算,然后再执行+z的运算。这种自左至右的结合方向就 称为"左结合性"。而自右至左的结合方向称为"右结合性"。最典型的右结合性运算符是赋值运算符。如x=y=z,由于“=”的 右结合性,应先执行y=z再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。
优先级 | 结合性 | 运算符 | 备注 |
---|---|---|---|
1 | 左结合 | () [] -> . |
圆括号 下标运算符 指向结构体成员运算符 结构体成员运算符 |
2 | 右结合 | ! ~ ++ -- + - (类型) * & sizeof |
逻辑非运算符 按位取反运算符 前缀增量运算符 前缀减量运算符 正号运算符 负号运算符 类型转换运算符 指针运算符 地址运算符 长度运算符 |
3 | 左结合 | * / % |