下面的循环执行几次呢?
unsigned int i=10;
for(i=10;i>=0;i--)
{
printf("HELLO GIRL!\n");
}
11次?O(∩_∩)O~,其实它是个死循环!
为虾米?因为i是个unsigned int型,当减小到0时,再减1变成2^32-1,判断条件仍然成立!
把判断条件写成i!=0就好了。我好像在C++ Primer上看到的推荐写法就是这样,for循环的判断条件写成!=格式。
下面的循环执行几次呢?
unsigned int i=10;
for(i=10;i>=0;i--)
{
printf("HELLO GIRL!\n");
}
为虾米?因为i是个unsigned int型,当减小到0时,再减1变成2^32-1,判断条件仍然成立!
把判断条件写成i!=0就好了。我好像在C++ Primer上看到的推荐写法就是这样,for循环的判断条件写成!=格式。