c语言中i++和++i的区别

2021-02-01 10:45:30 浏览数 (4652)

今天有同学问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 的新值

我想这样说大家就应该明白了。。。