标题:求助:帮忙分析一下这个问题处在哪里呀,不甚感激哈!
只看楼主
minhong2010
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-7
结帖率:75%
已结贴  问题点数:20 回复次数:3 
求助:帮忙分析一下这个问题处在哪里呀,不甚感激哈!
unsignedi;
for(i=9;i>=0;i--)
{
printf("%u\n",i);
}
搜索更多相关主题的帖子: 感激 
2010-10-25 15:58
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
得分:8 
程序代码:
#include <iostream>
using namespace std;
int main()
{
    unsigned  i;         
    for(i=9;i>=0;i--)
    {
        printf("%u\n",i);
    }
}
i=0之后,i--,i指不是变为-1,因为i是无符号整形,而是变为2^32 -1,所以有会循环运行,不终止

If You Want Something, Go Get It, Period.
2010-10-25 16:16
世界真大
Rank: 2
等 级:论坛游民
帖 子:9
专家分:21
注 册:2010-10-25
得分:8 
这是个死循环啊,变量i是个无符号数,永远都>=0,
0-1=-1;在内存中的表示(用16进制的补码表示)0xFFFFFFFF(假设整数用32位表示),
因为是无符号数,最高位的1不表示符号为,所以这个数是4294967295
2010-10-25 16:16
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
得分:4 
确实  正解 这个世界真大 而且不知道是好气还是好笑
2010-10-25 16:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-323944-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.392091 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved