c语言自增自减问题

void saw2()
{
uchar i;
for(i=255;i>=0;i--)
{
P0=255-i;
delayms(2);
}
void saw()
{
uchar i;
for(i=0;i<255;i++)
{
P0=i;
delayms(4);
}
}
一样功能的程序,为什么用自加很正常,用自减就进入了死循环。

我不知道你的程序功能是什么,不过这两个循环的执行次数明显不一样,saw2的是255-0,saw的是0-254。你再检查看看

========================================
水晶说得没错,uchar是无符号的char型,不存在负数,数值小于0的时候就会变成255。所以一直死循环。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-27
同意思前3位的说法,那个unsigned char型的是0~255;始终满足条件i>=0,如果改为i>0那就不是死循环了。那个自加的如果改为i<=255也一样是死循环。
第2个回答  2010-01-27
uchar 是0到255 而你那个条件里写的是>=0 所以等于0的时候也是会运行,所以最后再-- 这就又变成了255了 所以一直是死循环
第3个回答  2010-01-27
因为uchar范围能到255,但是不能小于0
第4个回答  2010-01-27
拿了分就闪

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网