为什么输出会无限循环

Why output is coming infinite loop

为什么这道题会进入死循环。根据我的答案应该是 65001,65002....65535。请提前elaborate.Thanks

#include<>
#include<stdio.h>
#include<conio.h>
int main()
{
 unsigned int i=65000;
 while ( i++ != 0 )
 printf("%d ",i);
 return 0;
 getch();
}

在现代系统中,unsigned int 至少是 32 位,但您期望的是 16 位。您没有无限循环,但至少要到 2^32 (4294967296) 才会循环。