#include <stdio.h>
int main()
{
int a=4;
int b=4;
int c=4;
int d=4;
int e=4;
int f=4;
int g=4;
a=a++;
b=++b;
c+=c++;
d+=++d;
++e+=e;
++f+=f++;
++g+=++g;
printf("a=%d\n",a);
printf("b=%d\n",b);
printf("c=%d\n",c);
printf("d=%d\n",d);
printf("e=%d\n",e);
printf("f=%d\n",f);
printf("g=%d\n",g);
getchar();
return 0;
}
保存为main.cpp,在VS2010下,debug和release均输出:
a=5
b=5
c=9
d=10
e=10
f=11
g=12
在g++下:
a=4
b=5
c=9
d=10
e=10
f=11
g=12
只有第一个不一样。一般情况下,遇到i++,只要先算,最后再统一取值就行。遇到++i,就先自增,最后再算。