Я хочу спросить, в чем разница между этими двумя случаями?
Случай 1:
unsigned int i;
for(i=10;i>=0;i--)
printf("%d",i);
Это приведет к бесконечному циклу!
Случай 2:
unsigned int a=-5;
printf("%d",a);
На экране будет напечатано -5.
Теперь причина для случая 1 заключается в том, что i
объявлено как unsigned int
, поэтому оно не может принимать отрицательные значения значения, следовательно, всегда будет больше 0.
Но в случае 2, если a
не может принимать отрицательные значения, почему печатается -5???
В чем разница между этими двумя случаями?
printf
интерпретироватьa
как целое число со знаком, что оно и сделало. - person mafso   schedule 11.07.2014"%d"
.... хочешь"%u"
? - person BLUEPIXY   schedule 11.07.2014