【发布时间】:2017-09-21 08:40:00
【问题描述】:
为什么下面的代码会导致死循环?
#include <stdio.h>
void main()
{
int i;
for(i=0;i!=12;i++)
{
printf("%d\n",i);
i=12;
}
}
【问题讨论】:
-
i++在循环结束时被执行,所以我将成为i=13 -
问问自己 (12+1) == 12 是否永远正确。
-
因为在执行循环操作
i++之后,您设置i=12,而不是使用i++递增它,然后执行新的迭代来检查i!=12是否存在。我推荐你,如果您不完全知道程序在做什么,请使用调试器找出它在做什么。