今天有同學(xué)問C語言中 for 循環(huán)里那個(gè) i++ 和 ++i 是否有區(qū)別,我告訴他在 for 循環(huán)中是沒有區(qū)別的,現(xiàn)在具體說一下 i++ 和 ++i 的區(qū)別。
我們先用 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 循環(huán)里,i++ 和 ++i 是沒有區(qū)別的,那么區(qū)別在哪里呢?
現(xiàn)在我們再看一段程序:
#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;}
試著運(yùn)行一下這段程序,發(fā)現(xiàn)結(jié)果是 1 2 ,這就是 i++ 和 ++i 的區(qū)別了:
i++ :先引用后增加
++i :先增加后引用
具體是什么意思呢?就是
i++ :先在 i 所在的表達(dá)式中使用 i 的當(dāng)前值,后讓 i 加 1
++i :讓 i 先加 1,然后在i所在的表達(dá)式中使用 i 的新值
我想這樣說大家就應(yīng)該明白了。。。