2.5 算术运算符
二元算术运算符包括:+
、-
、*
、/
、%
(取模运算符)
整数除法会截断结果中的小数部分
表达式 x % y
的结果是 x
除以 y
的余数,当 x
能被 y
整除时,其值为 0
例如,如果某一年的年份能被 4
整除但不能被 100
整除,那么这一年就是闰年,此外,能被 400
整除的年份也是闰年
因此,可以用下列语句判断闰年:
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
printf("%d is a leap year\n", year);
else
printf("%d is not a leap year\n", year);
取模运算符 %
不能应用于 float
或 double
类型
在有负操作数的情况下,整数除法截取的方向以及取模运算结果的符号取决于具体机器的实现,这和处理上溢出或下溢出的情况是一样的
二元运算符 +
和 -
具有相同的优先级,它们的优先级比运算符 *
、/
和 %
的优先级低
而运算符 *
、/
和 %
的优先级又比一元运算符 +
和 -
的优先级低
算术运算符采用从左到右的结合规则
本章末尾的表 2-1 完整总结了所有运算符的优先级和结合律