【发布时间】:2014-07-11 13:14:59
【问题描述】:
我想问一下这两种情况有什么区别?
案例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解释为一个有符号整数,它就照做了。 -
"%d"....你想要"%u"吗? -
+1 因为我也有同样的疑问。
标签: c unsigned-integer