B.5.3 算术运算符

假设

a、b表示除void之外任何数据类型的表达式;

i、j表示任何整型数据类型的表达式;

则表达式

-a 对a的值求反;

+a 给出a的值;

a+b a加b;

a-b a减b;

a*b a乘以b;

a/b a除以b;

i%j给出i除以j的余数。

在每个表达式中,都会为运算数执行普通的算术转换(参见“基本数据类型转换”一节)。如果a是无符号的,那么通过首先将a提升为整型,然后从提升类型的最大值减去a,最后将结果加1来计算-a。

如果两个整数相除,其结果将会被截取。如果其中一个运算数为负,那么截取方向将是不确定的(也就是,-3/2将在某些计算机上产生-1,在另一些计算机上产生-2);否则,截取的结果将总是朝向0的(3/2总是产生1)。可参见“基本运算和指针”一节中对算术运算和指针的总结。