今天有同学问C语言中for循环里那个 i++ 和 ++i 是否有区别,我告诉他在for循环中是没有区别的,现在具体说一下 i++ 和 ++i 的区别。
我们先用while语句写一下 for(i=1;i<10;i++)
int i=0;
while (i<10){
printf("www.slyar.com");
i++;
}
再用while语句写一下 for(i=1;i<10;++i)
int i=0;
while (i<10){
printf("www.slyar.com");
++i;
}
可以看到,最后i的值都是10,所以在for循环里,i++ 和 ++i 是没有区别的,那么区别在哪里呢?
现在我们再看一段程序:
#include<stdio.h>
int main(){
int i,x;
i=1;
x=1;
x=i++; //这里先让X变成i的值1,然后i加1
printf("%d ",x);
i=1;
x=1;
x=++i; //这里先让i加1,然后让X变成i的值2
printf("%d ",x);
system("pause");
return 0;
}
试着运行一下这段程序,发现结果是 1 2 ,这就是 i++ 和 ++i 的区别了:
i++ :先引用后增加
++i :先增加后引用
具体是什么意思呢?就是
i++ :先在i所在的表达式中使用i的当前值,后让i加1
++i :让i先加1,然后在i所在的表达式中使用i的新值
我想这样说大家就应该明白了。。。