前面将++运算符放在变量前面,这叫做前置形式。
这个运算符也可以写在变量的后面,这称为后置形式。
在表达式,注意是在表达式中使用前置和后置形式的效果不大相同。
下面的用法#include
int main(void)
{
int count = 0;
int total = count++ + 3;
printf("%d",total);
return 0;
}
等同于#include
int main(void)
{
int count = 0;
int total = count + 3;//如果++是后置 则 在这里就先进行+运算 然后再计算count++
count++;
printf("%d",total);
return 0;
}
如果表达式编写的是count++,则变量count的值在使用之后才递增。
比如
int count = 5;
int total = 6 + count++;
count初始值是5,这时候 由于++是写在count的后面,所以 就先使用了count的值进行加法运算,也就是 先让6+5 的结果是11 所以 total的值是11.然后 才将count的值+1 所以 最后
count的值变成了6 total的值变成了11
上面语句 等同于
total = 6 + count;
++count;#include
int main()
{
int count = 5;
int total = 6 + count++;
printf("count:%d\n",count);
printf("total:%d\n",total);
return 0;
}
#include
int main(void)
{
int count = 0;
int total = ++count + 3;//++在前 则先进行count++ 然后再进行count+3
printf("%d",total);
return 0;
}
最后结果就输出了4
最后 count的值 不管是前置还是后置 都会变为6;
再看另外一种特殊情况
a++ +b 和 a+ ++b
例如#include
int main()
{
int a = 10;
int b = 5;
int x = a++ + b; //++在后面 所以先让a的值 + b 结果付给x 后 然后 再让a的值+1
printf("%d",x);//15
return 0;
}
但是 如果写成这样#include
int main()
{
int a = 10;
int b = 5;
int x = a+(++b); //++在b的前面 所以先计算++b 让b的值变成6 然后再10+6
printf("%d",x);//16
return 0;
}
上面 为了避免混淆。最好 使用括号。#include
int main(void)
{
int count = 0;
int a = 3;
int total = count+++a;//(count++)+ a 或者 count + (++a)
printf("%d",total);
return 0;
}