只是好奇,爲什麼下面的代碼不等於永遠循環?相反,應用程序崩潰。for循環中條件的表達式無效
unsigned short i;
for (i = 1; i >= 0; i++)
{
printf("%d\n", i);
}
只是好奇,爲什麼下面的代碼不等於永遠循環?相反,應用程序崩潰。for循環中條件的表達式無效
unsigned short i;
for (i = 1; i >= 0; i++)
{
printf("%d\n", i);
}
問題解決了。反病毒Karspersky正在分析這個exe文件近20秒看起來。如果我禁用防病毒,它會立即運行。感謝您的所有輸入。
unsigned short i;
爲(I = 1; I> = 0;我++){
printf("%d\n", i);
}
此循環將當我的值變得大於短可以採取崩潰。
我不認爲這是真的。當'i'達到'unsigned short'的最大可能值時,下一個增量將包圍它到0.請參閱http://stackoverflow.com/questions/988588/is-using- unsigned-integer-overflow-good-實踐。我相信這個行爲是由C標準定義的;如果編譯器導致此代碼崩潰,則編譯器將中斷。該錯誤可能是代碼中的其他地方。 –
unsigned short i;
for (i = 1; i >= 0; i++)
{
printf("%d\n", i);
system("pause");
}
也許它是如此之快,它打破,你可以用它使一個暫停,但你需要按輸入保持環路
不知道。我得到了一個無限循環,或者至少與我讓它運行的5秒鐘期間一樣多。你什麼時候遇到崩潰?有什麼錯誤信息? 'gdb'對此有何評論? – Amadan
此代碼正確(並導致無限循環)。請發佈[MCVE](http://stackoverflow.com/help/mcve)。你的崩潰可能是由程序中的其他內容引起的。另一種可能性是您的終端無法處理輸出量,終端崩潰或似乎崩潰。 –
很明顯,代碼會崩潰,因爲它會運行一個無限循環!你的問題是什麼? –