【发布时间】:2016-03-26 13:47:43
【问题描述】:
为什么这个问题会进入无限循环。对我来说,应该是 65001,65002....65535。请详细说明。在此先感谢
#include<>
#include<stdio.h>
#include<conio.h>
int main()
{
unsigned int i=65000;
while ( i++ != 0 )
printf("%d ",i);
return 0;
getch();
}
【问题讨论】:
-
使用
uint16_t而不是unsigned int。顺便说一句getch();:未到达的代码 -
它进入循环是因为循环中的条件
i++ != 0得到满足...int不保证是16位无符号整数。事实上,它是当今计算机中最多的 32 位。请改用uint16_t或unsigned short。