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