【摘要】:1)所有运算符的优先级共分为15级。基本运算符的优先级最高,逗号运算符的优先级最低(为1级)。2)当不同类型的运算符出现在同一个表达式中,在计算该表达式的值时,应先执行优先级高的运算,再执行优先级低的运算。例如: 3)相同的优先级的运算符,如果出现在同一个表达式中,则按结合性的顺序进行计算。因为有些运算符可以超载,可能代表不同的运算。
2.6.1 运算符汇总
C语言运算符优先级和结合性,如表2.6.1所示。
表2.6.1 运算符优先级及结合性
1)所有运算符的优先级共分为15级。基本运算符的优先级最高(为15级),逗号运算符的优先级最低(为1级)。在表中,优先级从上到下依次递减。
2)当不同类型的运算符出现在同一个表达式中,在计算该表达式的值时,应先执行优先级高的运算,再执行优先级低的运算。例如:
i|j&k*m
表达式中有三个运算符,按优先级的高低为序,依次是*、&和|。所以,该表达式就等价于:
i|(j&(k*m)
3)相同的优先级的运算符(表2.6.1中同一行的运算符),如果出现在同一个表达式中,则按结合性的顺序进行计算。例如:
i/j*k
表达式等价于:
(i/j)*k
又如表达式
*p--
等价于:
*(p--)
4)在分析C源程序或者编写C程序时,要注意运算符的作用和其操作数的个数。因为有些运算符可以超载,可能代表不同的运算。例如表达式 i*j的运算符*是乘号,它有左右两个分量;而*p*i中,左边的*是单目运算符,只有一个操作数,其作用是取出p(指针量)所指向内存单元的内容,右边的*是双目运算符,表示两数相乘。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。