已修改,感谢评论中的指正
如果只是一条单独语句,没区别,
比方说for(i=0;i<9;i++)与for(i=0;i<9;++i)都表示每次f0r循环结束时i+1后判断i是否<9再进入下一次循环。或者是循环内部的i++;及++i;也同理。
但如果不是单独语句,就有区别:
比如n=++i;和n=i++;n赋的值就不同,前者n的值为i+1后的值,后者n的值为i值,赋值操作完成后再加一。
#include <stdio.h>
int main () {
int a=0,b=0;
printf("a++=%d\n",a++);
printf("++a=%d",++b);
return 0;
}
结果
a++=0
++a=1
再有把一个数组的值赋到另一个数组中时,y[j++]=x[i];与y[++j]=x[i];也不同,y数组开始储存的起点也是不同的。
根据这篇文章
里的探究,可以知道在没有编译器优化的情况下,++i效率会高于i++