2016-03-26 13 views
-1

neden bu soru sonsuz döngüde giriyor. Benim için ans 65001.65002 olmalıdır .... 65535. Plesae elaborate.Thanks Modern sistemlerde öncedenÇıktı neden sonsuz döngüden geliyor

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

, "imzasız int" yerine "uint16_t" kullanın. BTW 'getch();': okunamayan kod – BLUEPIXY

+2

Döngünün içine girer, çünkü 'i ++! = 0' döngüsündeki koşul tatmin edilir ...' int' 16 bit işaretsiz tamsayı olarak garanti edilmez. Aslında, bugünlerde bilgisayarlarda en fazla 32-bit. Bunun yerine "uint16_t" veya "imzasız kısa" kullanın. – Ian

cevap

3

yılında, imzasız int en az 32 bit, ancak 16 bit bekliyoruz. Sonsuz bir döngü yok, ama en az 2^32 (4294967296) kadar sarılmayacak.

İlgili konular