#include<stdio.h>
int main(){
for(int p=0;p<9;p++){
printf("--%d",p);
}
printf("\n");
for(int p=0;p<9;++p){
printf("--%d",p);
}
printf("\n");
}
--0--1--2--3--4--5--6--7--8
--0--1--2--3--4--5--6--7--8
Program ended with exit code: 0
//结果都一样
++p更快,因为编译器不需要保存一个临时变量保存p,当你做一个非常非常非常大的循环的时候,可能会体会到这一点速度差异
#include<stdio.h>
int main(){
int p=0;
int q=++p;
p=0;
int o=p++;
printf("q=%d p=%d",q,p);
printf("\n");
printf("o=%d p=%d",o,p);
printf("\n");
return 0;
}
//output
q=1 p=1
o=0 p=1
Program ended with exit code: 0
p++:先引用后增加,先在p所在的表达式中使用p的当前值,后让p加1
++p:先增加后引用,让p先加1,然后在i所在的表达式中使用i的新值