在翁恺老师的课程中提到
“++”和“--”是两个很特殊的运算符,它们是单目运算符,这个算子还必须是变量。
这两个运算符分别叫做递增和递减运算符,他们的作用就是给这个变量+1或者-1。
++和-可以放在变量的前面,叫做前缀形式,也可以放在变量的后面,叫做后缀形式。
a++的值是a加1以前的值,而++a的值是加了1以后的值,无论哪个,a自己的值都加了1了。
案例演示:
int a=5;
int b=5;
int t,m;
t = a++;
m = ++b;
printf("t=%d和,m=%d\n",t,m);
printf("a=%d和,b=%d\n",a,b);
return 0;
运行结果如下:
以上明显可得,a++是整体值没变而a值变了,++a则是整体值和a值都发生了改变。
课程结尾提到一个例题:
a=b+=c++-d+--e/-f
根据运算符的优先级,从右往左进行计算:
(1)先计算--e和-f的值
(2)-e表示将变量的值减1,并返回减1后的值。
(3)-f将变量的值取反。
(4)获取--e和-f的结果后,再计算c++-d和前面计算
结果的和。
(5)c+先将变量c的值赋给表达式,然后再将变量c的值加1。所以c++-d的计算结果就是变量c的初始值加上1再减去变量d的值。
(6)然后将c++-d的结果加上前面计算的--e和-f的结果。
(7)最后,将结果赋给变量a。