for迴圈中i++與++i
阿新 • • 發佈:2019-02-19
文章作者: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的新值
今天有同學問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的新值