下面的代码有什么问题?
unsigned i ;
for (i=9;i>=0;i--)
{
printf("%u\n",i);
}
答案:
死循环
整形数据在计算机中是用补码表表示的
当i=0时,补码为0x00000000
i--后,
补码为:0xffffffff
因为i为无符号数,所以i>=0成立(此时计算机认为i是个很大的正整数),循环继续
下面的代码有什么问题?
unsigned i ;
for (i=9;i>=0;i--)
{
printf("%u\n",i);
}
答案:
死循环
整形数据在计算机中是用补码表表示的
当i=0时,补码为0x00000000
i--后,
补码为:0xffffffff
因为i为无符号数,所以i>=0成立(此时计算机认为i是个很大的正整数),循环继续