请教一个C的问题

lzh84300 2012-03-20 01:28:58
#include <iostream.h>
void main()
{
unsigned int i=0;
for(i=10;i>=0;i--)
cout<<"test"<<endl;
}

为何一直循环输出。i=-1,其补码是0xfe 导致的吗?
...全文
126 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
BadPattern 2012-03-20
  • 打赏
  • 举报
回复
无符号数0-1将进行无符号运算,等价于模数加法,结果得到无符号整数的最大值(32位系统为4294967295)
MM181 2012-03-20
  • 打赏
  • 举报
回复
unsignint 是无符号数,不会产生-1,永远满足》=0,所以无限循环
flowingfirefly 2012-03-20
  • 打赏
  • 举报
回复
lz, 结帖率
pengpeng3333 2012-03-20
  • 打赏
  • 举报
回复
unsigned 是无符号数,,只有正数
Corner 2012-03-20
  • 打赏
  • 举报
回复

#include <iostream.h>
void main()
{
int i=0;
for(i=10;i>=0;i--)
cout<<"test"<<endl;
}
自信男孩 2012-03-20
  • 打赏
  • 举报
回复
无符号数i的值都是>=0的。那么这个循环是个死循环吧。
shyrgst 2012-03-20
  • 打赏
  • 举报
回复
无符号数!!!你的循环条件怎么可能成立
jordy917 2012-03-20
  • 打赏
  • 举报
回复
++
[Quote=引用 1 楼 muyi66 的回复:]

你把i定义为无符号数,那么不管怎么个减法它的值永远也不可能小于0。所以i>=0会永远成立,循环无法结束。
[/Quote]
a328846994 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 muyi66 的回复:]

你把i定义为无符号数,那么不管怎么个减法它的值永远也不可能小于0。所以i>=0会永远成立,循环无法结束。
[/Quote]
顶一顶
a328846994 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 muyi66 的回复:]

你把i定义为无符号数,那么不管怎么个减法它的值永远也不可能小于0。所以i>=0会永远成立,循环无法结束。
[/Quote]
顶一顶
qixing1115 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 muyi66 的回复:]
你把i定义为无符号数,那么不管怎么个减法它的值永远也不可能小于0。所以i>=0会永远成立,循环无法结束。
[/Quote]
++
面包大师 2012-03-20
  • 打赏
  • 举报
回复
unsigned int 就没有负数,怎么可能出现小于0的情况?
muyi66 2012-03-20
  • 打赏
  • 举报
回复
你把i定义为无符号数,那么不管怎么个减法它的值永远也不可能小于0。所以i>=0会永远成立,循环无法结束。

69,369

社区成员

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

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