C for循环中条件的表达式无效

C for循环中条件的表达式无效,c,C,只是好奇,为什么下面的代码不等同于永久循环?相反,应用程序崩溃 unsigned short i; for (i = 1; i >= 0; i++) { printf("%d\n", i); } 无符号短i 对于i=1;i>=0;我++ { } 当i的值大于短路时,此循环将崩溃。问题已解决。Antivirus Karspersky对这个exe文件进行了近20秒的分析。如果我禁用防病毒,它会立即运行。谢谢你的投入 unsigned short i; for (i = 1;

只是好奇,为什么下面的代码不等同于永久循环?相反,应用程序崩溃

unsigned short i;
for (i = 1; i >= 0; i++)
{
    printf("%d\n", i);
}
无符号短i

对于i=1;i>=0;我++ {

}


当i的值大于短路时,此循环将崩溃。

问题已解决。Antivirus Karspersky对这个exe文件进行了近20秒的分析。如果我禁用防病毒,它会立即运行。谢谢你的投入

    unsigned short i;
for (i = 1; i >= 0; i++)
{
    printf("%d\n", i);
    system("pause");
}

也许它太快了,以至于断开,你可以用它来暂停,但你需要按enter键来保持循环

不知道。我得到了一个无限循环,或者至少是我让它运行的5s中看起来的循环。你什么时候会撞车?有什么错误信息?gdb对此有何评论?这段代码是正确的,并导致无限循环。请发一封信。您的崩溃可能是由程序中的其他内容引起的。另一种可能是,您的终端无法处理输出量,终端崩溃或出现崩溃。显然,代码会崩溃,因为它将运行无限循环!你的问题是什么?好的,现在我看到它在大约25秒后开始无限循环执行。这只是在第一次运行期间。随后的运行是即时的,并且无休止地运行。我正在使用最新的codeblocks+mingw,不知道为什么会有这么多的延迟。可能是卡巴斯基引起了问题。甚至下面的代码也会在大约25秒后运行{int k=1;for;k;printfHello;}这就是全部代码吗?请发布所有导致问题的代码,因为发布的代码根本不会导致问题,它只会一次又一次地从1变为65535。我不认为这是真的。当i达到无符号short的最大可能值时,下一个增量将把它环绕到0。看见我相信这种行为是由C标准定义的;如果编译器导致此代码崩溃,则编译器已损坏。这个bug可能在代码中的其他地方。
    unsigned short i;
for (i = 1; i >= 0; i++)
{
    printf("%d\n", i);
    system("pause");
}