是自增運算,而且是先加1後再執行。
例如:
int i,k;
for(i=0,k=0; i
{
k += i++;
}
第一次進入時i的初始值是0,k的初始值也是0。這時的i++並沒有在本次語句中起到加一的作用,而是要在本次操作結束後再起作用,也就是在第一次循 環完全結束後。進入迴圈體本人看,k += i++;這時由於這裡的是i++(需要先操作後加1),所以,k的值理所當然是0了,而在本句結束後i的值就進行了加1操作,在本次迴圈結束時又進行了一 次加1操作,所以本次迴圈結束後k=0,i=2;
第二次進入時i的初始值是2,k的初始值是0。同理分析,在k += i++;後k的值為2了,而i的值也由於兩次i++變為了4。所以,本次迴圈結束後k=2,i=4;
第三次進入時i的初始值是4,k的初始值是2。同理分析,在k += i++;後k的值由於經過原來的值與i當前的值相加後變成了6,而i的值同樣是在最後加了兩個1。所以在本次迴圈結束後k=6,i=6;
第四次準備進入迴圈時,發現i的值已經比5大了。因此,程式終止。最後k的值為6,i的值也為6。
是自增運算,而且是先加1後再執行。
例如:
int i,k;
for(i=0,k=0; i
{
k += i++;
}
第一次進入時i的初始值是0,k的初始值也是0。這時的i++並沒有在本次語句中起到加一的作用,而是要在本次操作結束後再起作用,也就是在第一次循 環完全結束後。進入迴圈體本人看,k += i++;這時由於這裡的是i++(需要先操作後加1),所以,k的值理所當然是0了,而在本句結束後i的值就進行了加1操作,在本次迴圈結束時又進行了一 次加1操作,所以本次迴圈結束後k=0,i=2;
第二次進入時i的初始值是2,k的初始值是0。同理分析,在k += i++;後k的值為2了,而i的值也由於兩次i++變為了4。所以,本次迴圈結束後k=2,i=4;
第三次進入時i的初始值是4,k的初始值是2。同理分析,在k += i++;後k的值由於經過原來的值與i當前的值相加後變成了6,而i的值同樣是在最後加了兩個1。所以在本次迴圈結束後k=6,i=6;
第四次準備進入迴圈時,發現i的值已經比5大了。因此,程式終止。最後k的值為6,i的值也為6。