App下載

c語言中i++和++i的區(qū)別

猿友 2021-02-01 10:45:30 瀏覽數(shù) (4770)
反饋

今天有同學(xué)問C語言中 for 循環(huán)里那個 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)該明白了。。。


C

0 人點(diǎn)贊