Искам да попитам каква е разликата между тези два случая?
Случай 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