a= i++;
则相当于 a=i;i=i+1;
a=++i;
则相当于 i=i+1;a=i;
也就是++i是先加1,然后使用加1后值。
i++是使用i原来的值,然后再改变i的值加1。
这个是C的基础,看了好几遍书的我刚刚开始还是不明白,最后编程试了试就知道了
#include
int main(void)
{
int m=n=0;
int I=0;
m = I++;
n = ++I;
printf ( "m=I++=%d n=++I=%d\n",m,n );
return (0);
}
显示的是 m=I++=0 n=++I=1,所以呢I++是在复制之后在加1的,而++I是先加1的。
意思是一个是用完后自增1,一个是自增1以后再用。
I++,是本次循环中,I的值为I,下次循环中I的值为I+1
++I,是本次循环中,I的值为I++,下次循环中I的值为I+2
意思是一个是用完后自增1,一个是自增1以后再用。
从效率以及左右值、作用来看差别很大,详情请看我的博客++i、i++、i+=1、i=i+1的区别不复制黏贴了