根据我的理解,下面的while循环应该是无限循环,但实际上只运行了三次。
main()
{
int i=3;
while(i--)
{
int i=100;
i--;
printf("%d..",i);
}
}
它输出99..99..99
但根据我的理解,由于每次控制进入while循环时都会得到值100,因此它应该无限运行。所以它永远不会达到零。
只是为了试验,我在while循环内部用i=100;
替换了int i=100;
,现在它无限运行..为什么???
while
循环之前定义的i
被遮盖了。 gcc可以通过-Wshadow
进行警告。 - pmg