######C语言面试–01
void main()
{
unsigned int i;
for(i=9;i>=0;i--)
{
printf("%u\n\r",i);
//while(!i);
}
代码分析:1.无符号整形i,i始终大于等于0,
2.i>.=0始终为真。
3.当i=0时,i-- =-1;-1在内存里以补码的形式存储,
4.而这个补码又赋值给无符号整形,则这个补码包括符号位在内的32位都以正常的数值给无符号整形。
运行结果:for里面死循环。
######C语言面试–01
void main()
{
unsigned int i;
for(i=9;i>=0;i--)
{
printf("%u\n\r",i);
//while(!i);
}
代码分析:1.无符号整形i,i始终大于等于0,
2.i>.=0始终为真。
3.当i=0时,i-- =-1;-1在内存里以补码的形式存储,
4.而这个补码又赋值给无符号整形,则这个补码包括符号位在内的32位都以正常的数值给无符号整形。
运行结果:for里面死循环。