a++这个式子的返回值是a,所以b=a++相当于b=a,然后a=a+1;
++a的返回值是a+1;所以b=++a相当于a=a+1;然后b=a;
a++先返回a,再自加
++a先自加,再返回a
如a=3
b=a++;//b=3
c=++a;//c=5
扩展资料
例:
#include<stdio.h>
intmain()
{
//intm=10,n1,n2;
//n1=m++;先将m的值赋给n1,然后m再做自增运算,所以此时,n1=10,m=11;
//n2=++m;先将m做自增运算,然后在将运算后的m值赋给n2,所以此时,n2=11,m=11;
inta=10,b=10,c,d;
c=(a++)+(++a);
//由上例n1=m++,n2=++m,m++=11可得出c=10+12;分析:前面括号所得值为10,而前面括号中的a经过自增运算后a的值为11,然后赋值给后面括号中的a,后面括号中的a经过自增厅悔运算后a的值为12,后面括号最后赋值为改茄12;
d=(++b)+(b++);
//由上例n1=m++,n2=++m,++m=11可得出d=11+11;分析:前面括号所得值为11,而前面括号中的a经过自增运算后b的核伏察值为11,然后赋值给后面括号中的b,后面括号中的b先将值赋给后面括号,所以后面括号的值为11;
printf("c=%d\nd=%d\n",c,d);
return0;
}