#include <stdio.h>
int main()
{
int i = ;
for(i = , printf(" First = %d", i);i<, printf(" Second = %d", i);i++, printf(" Third = %d", i))
{
printf(" Fourth = %d", i);
}
system("pause");
return ;
}
這段代碼會輸出什麼?我說死循環你會信?

上面是我在某一時刻截取的螢幕輸出,可以看到此時的Second 、Third 、Fourth 都已經達到了5000以上,并不是我們一開始想象的到10就截止了,而且它一直在執行螢幕輸出,已經是一個死循環了。那麼為什麼會有上面的現象呢?下面來分析一下。
for循環語句塊判斷是否繼續執行的語句已經換成了i<10, printf(” Second = %d”, i),這裡考察的兩個知識點分别是:
1、逗号表達式的值怎麼求
2、printf()函數的傳回值
來分析分析:
逗号表達式的值是最後一個逗号後面的表達式的值,而該語句逗号後面的表達式是 printf(” Second = %d”, i),也就是for循環的判斷語句其實是要判斷 printf(” Second = %d”, i)是真還是假,那麼我們隻要知道printf(” Second = %d”, i)的值即可。
先提一個知識點,printf函數的傳回值是函數在标準輸出上輸出的實際字元的個數,根絕這點,我們可以知道printf(” Second = %d”, i)語句永遠不會為0,因為該語句必定會在螢幕輸出字元,那麼for循環的判斷語句就會一直是真,是以程式是個死循環。