1. 程式人生 > >for迴圈中i++與++i

for迴圈中i++與++i

文章作者:Slyar 文章來源:Slyar Home (www.slyar.com) 轉載請註明,謝謝合作。


今天有同學問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的新值