一.算术操作符
1.双目操作符(即有两个操作数的符号):+ - * / %
除号(/):1.两个操作数均为整数时,则结果为其商。
2.两个操作数中至少一个为浮点数时,则结果为其精确值。
int a = 7 / 2; //a的值为3
float b = 7.0 / 2; //b的值为3.5
取余号(%):1.只能用于两个整数间。(注意:只要有小数点就为浮点数,如:7.0)
2.若两个操作数中有负数,则由第一个操作数的正负号决定值的正负号。
int a = -7 % 2; //a的值为-1
int b = 7 % -2; //b的值为1
int c = -7 % -2; //c的值为-1
2.赋值操作符(=)
int a = 0; //在创建变量并给它赋一个初值,这叫初始化
a = 1; //这叫赋值
连续赋值(顺序是从右往左依次赋值的)
int a = 1;
int b = 2;
int c = 3;
a = b = c + 1; //连续赋值
b = c + 1;
a = b; //这两行代码等效于前面的连续赋值
3.复合赋值符:一个操作符+一个赋值符号组成。
如:+= -= *= /= %= 等等。
优点:可以简化代码。如:a = a + 1;可以写成a += 1;
4.单目操作符(即有一个操作数的符号):++ -- +(正) -(负)
要点:++为自增操作符,会使变量自增1;--为自减操作符,会使变量自减1
声明一下:这里只讲++,--原理一样
a++与++a在printf之前,在打印之前已经执行,所以无论是前置,还是后置,打印出来的a已经加上了1
这里我们将a++与++a当做printf的参数试试
要点:前置++,即先加1,在使用
后置++,即先使用,在加1
看第一幅图(以下是我理解的),a++为后置,即先打印a事先存在内存中的值0,之后再加1
那么加完1了,第二次打印结果就为1
第一个printf相当于这串代码
printf("%d\n",a);
a += 1;
看第二幅图,++a为前置,即先让内存中的a加1,在打印
第一个printf相当于这串代码
a += 1;
printf("%d\n",a);
---没有太注重格式,能看就行