5.2.2 加法运算符:+
“加法运算符“使得在它两侧的值被加到一起。被加的值(操作数)可以是变量也可以是常量。
5.2.3 减法运算符:-
”减法运算符“从它前面的数中减去它后面的数。
+和-运算符被称为二元(binary)或双值(dyadic)运算符,这表示它们需要两个操作数。
5.2.4 符号运算符:-和+
负号可以用于指示或改变一个值的代数符号。
当这样使用负号时,称它为一元运算符,表示它只需要一个操作数。
5.2.5 乘法运算符:*
指数增长
/*wheat.c--指数增长*/
#include <stdio.h>
#define SQUARES 64
#define CROP 1E15
int main(void)
{
double current,total;
int count = 1;
printf(”square grains total ");
printf("fraction of \n");
printf(" added grain ");
printf("US total\n");
total=current=1.0;
printf("%4d %13.2e %12.2e %12.2e\n",count,current,total,total/CROP);
while (count<SQUARES)
{
count=count+1;
current=2.0*current;
total=total+current;
printf("%4d %13.2e %12.2e %12.2e\n",count,current,total,total/CROP);
}
printf("That's all.\n");
return 0;
}
5.2.6 除法运算符:/
整型数的除尘运算和浮点数的除法运算有很大不同。
浮点类型的除法运算得出一个浮点结果,而整数除法运算得出一个整数结果。
在C中,整数除法结果的小数部分都被丢弃,这个过程被称为截尾。
当您对整数与浮点数进行混合运算时,结果是浮点数。实际上,计算机不能真正用整数去除浮点数,在这种情况下,做除法运算之前将整数转化为浮点数。
C99标准之前的C语言给了实现者一些空间,让他们来决定对于负数整数除法如何工作。可以使用这样的方法,即舍入过程采用小于或等于该浮点数的最大整数。当然,3相对于3.8而言是符合上面描述的。那么-3.8呢?最大整数方法会建议将其四舍五入为-4,因为-4小于-3.8.
但是另外一种舍入方法,是简单的丢弃小数部分,这种方法称为“趋零截尾”。它建议将-3.8转换成-3.
C99要求使用趋零截尾。
5.2.7 运算符的优先级
运算符 | 结合性 |
() | 从左到右 |
+-(一元) | 从右到左 |
*/ | 从左到右 |
+-(二元) | 从左到右 |
= | 从右到左 |
结合性那一列指出运算符如何与其操作数相结合。
5.2.8 优先级和求值顺序
当两个运算符共享一个操作数时,优先级规定了求值顺序。
结合规则适用于共享同一操作数的运算符。