#include <stdio.h>
int main()
{
int x = 1,y=10;
x=x*y;
x++;
printf("x=%d\n",x);
return 0;
}
代码中将x++;换成++x;为什么结果是一样呢?请帮忙解答!
因为这个就是单纯的自增啊,所以x++和++x没什么区别。如果x++参与运算了那就不一样了,例如,a=2,x=3,表达式a*x++的值为2*3=6,表达式算完以后x要自增1,所以x的值就是4了。
而a*++x的值就为2*4=8了,这是因为x先自增了,再参与运算。
总结一点就是,++前置,先自增再参与运算;++后置,先参与运算,自身再自增。
++在前是先自加1,再取值。++在后是先取当前值再自加1。但是无论++前置还是后置两者最后都会自加1,即都会执行x=x+1,所以该程序最后输出的a都是一样的,如果改为printf("%d\n",x++)和printf("%d\n",++x)则两者结果不一样。