算数运算符
基本的算数运算符
'+、-':正负值运算符(单目/一元运算符:只有一个运算数),举例:+5,-5
'+,-,*,/,%':加减乘除取余运算符(双目/二元运算符:有两个运算数),注意:进行除法运算的时候,除数不能为0
这戏算符运算符的运算顺序与数学上的运算顺序是相同的。 *、/、% 的优先级高于 +、-
表达式和运算符的优先级与结核性
算数表达式:指用运算符和括号运算对象连接起来,符合C语言规范的算式
表达式中各种运算符的运算顺序,必要时添加括号
表达式中各种运算对象的数据类型,特别是正数相除,C语言规定,两个整型相除。其结果仍然为整数
优先性与结核性
定义:在表达式求解的时候,先按运算符的优先级级别的高低次序执行。若一个运算对象两侧的运算符的优先级相同则按规定的结合方向处理。
各种运算符的结合方向:
-
算术运算符的结合方向:自左向右,也就是运算对象先与左边的运算符结合
-
特殊运算符的结合方向:自右向左,也就是运算对象先与右边的运算符结合
-
若一个运算符两侧的数据类型不同,会自动转换为同类型后进行计算(有时候需要我们指定类型)
自增++、自增--运算符
作用:使变量的值增1或者减1 结合方向:自右向左
++i,-i
表示在使用该运算符对象之前,先让运算数自身增1或者减1,然后再使用它,也就是使用增1或者减1后的值。 先计算(i+1),后使用
i++,i--
表示在使用该运算符对象之后,先使用它,然后再让运算数自身增1或者减1,也就是使用增1或者减1前的值。 先使用,后计算(i自身+1)
总结:不管是++i还是i++,运算数i自身都增1;同理不管是…i还是i-,运算数自身都减1。它们的不同之处在于赋值给整体(i++或者++i)的顺序。