全站数据
8 4 2 0 5 8 1

c语言中运算符的“结合方向”到底是怎么回事啊

注册消防工程师论坛 | 教育先行,筑梦人生!         
问题更新日期:2024-06-20 19:46:43

问题描述

c语言中运算符的“结合方向”到底是怎么回事啊,麻烦给回复
精选答案
最佳答案

优先级和结合性C语言中,运算符的运算优先级共分为15级。

1级最高,15级最低。

在表达式中,优先级较高的先于优先级较低的进行运算。

而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。

C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。

例如算术运算符的结合性是自左至右,即先左后右。

如有表达式x-y+z则y应先与“-”号结合,执行x-y运算,然后再执行+z的运算。

这种自左至右的结合方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。

最典型的右结合性运算符是赋值运算符。

如x=y=z,由于“=”的右结合性,应先执行y=z再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。运算符的种类C语言的运算符可分为以下几类:

1.算术运算符用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

2.关系运算符用于比较运算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。

3.逻辑运算符用于逻辑运算。包括与(&&)、或(||)、非(!)三种。

4.位操作运算符参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

5. 赋值运算符用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。

6. 条件运算符这是一个三目运算符,用于条件求值( :)。

7. 逗号运算符用于把若干表达式组合成一个表达式(,)。

8. 指针运算符用于取内容(*)和取地址(&)二种运算。

9. 求字节数运算符用于计算数据类型所占的字节数(sizeof)。

10. 特殊运算符有括号(),下标[],成员(→,.)等几种。