unsigned int类型的数和0比较大小?

xiaoxibo 2009-07-24 05:04:05
#include<stdio.h>

int main ()
{
unsigned int i;

for(i = 9; i >= 0; --i)
{
printf("%u\n", i);
}

return 0;
}
结果是
9
8
7
6
5
4
3
2
1
0
4294967295
……
后面是是循环
unsigned int类型的数能不能和0比较大小??如果能的话是怎么比的?
...全文
1252 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
friendly_ 2009-07-24
  • 打赏
  • 举报
回复
i >= 0 ---------> i+1>0
code_zhang 2009-07-24
  • 打赏
  • 举报
回复
unsigned int 无符号整型 范围0~2^32-1
mstlq 2009-07-24
  • 打赏
  • 举报
回复
能比,只是永远都大于等于0而已,O(∩_∩)O哈哈~
wanjingwei 2009-07-24
  • 打赏
  • 举报
回复
你这个肯定无限循环了
晨星 2009-07-24
  • 打赏
  • 举报
回复
不是不能,而是unsigned int永远>=0。
实在不行,你可以试试:
for(i = 9; i >= 0 && i < i + 1; --i)
udsking 2009-07-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 xiaoxibo 的回复:]
#include <stdio.h>

int main ()
{
    unsigned int i;

    for(i = 9; i >= 0; --i)
    {
        printf("%u\n", i);
    }

    return 0;
}
结果是
9
8
7
6
5
4
3
2
1
0
4294967295
……
后面是是循环
unsigned int类型的数能不能和0比较大小??如果能的话是怎么比的?
[/Quote]

i溢出!i=0满足条件,走循环,--i之后i溢出,变成非常大的一个正整数,继续循环之!
建议i=9;i>=0;--i改为i=10;i>0;--i
DarkChampion 2009-07-24
  • 打赏
  • 举报
回复
unsigned int类型就没有比0小的
DarkChampion 2009-07-24
  • 打赏
  • 举报
回复
i=0之后
0-1=0xffffffff
肯定大于0嘛

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧