当前位置:首页 > 问问

c语言中-m 按什么顺序计算 C语言编译选项-m的计算顺序

c语言中-m 按什么顺序计算

在c语言中,-m表示对于数字m取反。但是在表达式中,有时候我们会遇到多个带有-m的数的运算,那么这些数的运算顺序是如何的呢?

运算顺序

在c语言中,-m按照从右往左的顺序计算。

例如: -1 - 2 - 3,实际上等价于 -1 - (2 - 3) = -1 - (-1) = 0

再比如:-3 + -2 - 1,实际上等价于 (-3) + (-2) - 1 = -6

这个顺序和一般四则运算的优先级是不同的,需要特别注意。

运算符的优先级

c语言中的运算符优先级如下(由高到低):

1.括号()

2.单目运算符(按照出现的顺序):++, --, !,~(取反), +(正号), -(负号),&(地址运算符), *(指针)

3.乘除(*, /, %)

4.加减(+, -)

5.移位运算符(<<, >>)

6.关系运算符(<, <=, >, >=)

7.相等运算符(==, !=)

8.按位与(&)

9.按位异或(^)

10.按位或(|)

11.逻辑与(&&)

12.逻辑或(||)

13.三目运算符( ?: )

14.赋值运算符(按照出现的顺序): =, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |=

15.逗号运算符(,)

示例

接下来看一个计算的例子,如下:

-1 + 2 * -3 + 4 / -2

按照优先级,先算乘除,再算加减,-1 + 2 * -3等价于-1 + (-6) = -7,然后再加上4/-2等价于2,所以整个表达式的值为-5。

结论

在c语言中,-m按照从右往左的顺序进行运算。为了避免运算顺序的混淆和错误,我们应该在多个带有-m的数的运算时,用括号将需要的运算先行包裹起来,明确运算的优先级。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信

相关文章