1. 程式人生 > >for迴圈分號之間的多個語句執行次序問題

for迴圈分號之間的多個語句執行次序問題

最近在程式設計時要用到給for迴圈小括號裡面的分號之間寫上幾個語句,所以,就想到了執行順序的問題

比如 for(i = 0 ;  i < 5;  i = j, i++) 到底是先執行  i = j  再執行 i ++,還是先執行 i++ 再執行 i = j,或者是兩個同時執行,以前認為程式是自上而下執行的,現在到左右又不會了,

所以寫了一段程式碼測試了一下

#include<stdio.h>

int main(void)
{
int i,j = 4;
for(i = 0; i < 5;  i = j, i++)
{
if(i)
printf("先執行 i++ 再執行 i = j\n");
}
printf("先執行 i = j 再執行 i++ \n");
return 0;
}

在VC++6.0 執行的結果是:

先執行 i = j 再執行 i++
ress any key to continue

在for()小括號中逗號是為了在只能寫一條表示式的地方寫多條表示式而設計的,所以可以寫多個語句

寫程式碼的時候,為了方便除錯,我們儘可能的會把一條語句寫成一行,這樣就是程式總體上自上而下的執行,如果你把所有程式寫成一行,那麼就是從左向右執行了