求高手解答单片机C语言中while(--a)和while(a--)的区别?

如题所述

while(--a)等价于先将a减小1,再判断它是否为0

while(a--)先判断它的逻辑值是否为0,再减小1.
比如a=2的话,
第一个循环1次。因为,--a=1,
第二次
--a=0,为假了。
第二个循环2次。因为,先判断2
,为真,再将a减小得1.
再判断a==1,为真,再将a减小1,再判断a==0,不循环了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-15
1.
区别在于判断while之前减还是之后减,也就是在相同的a初始值情况下,--a会比a--少循环一次,因为当a=1的时候,第一个--a就会退出循环,第二个不会。
2.
while和for语句有区别,就是在循环体内,无论你使用两者哪个,a在进入循环体都已经发生了-1,也就是说,a相等情况下,两种进入循环后的数值相同,就是循环差了一次。
第2个回答  2020-01-08
这里牵扯到的就是--a和a--的区别呢。这么说吧。假如b=--a;程序执行分两步,第一步a
=
a-1;第二步b=a;而如果是b=a--;则第一步和第二步反过来执行。假如a=8;执行b=--a后a=b=7;执行b=a--后b=8,a=7;同样执行++时也是一样的道理
第3个回答  2019-10-15
我估计,那是用来作时间间隔控制。while(--a);
是循环50000次,当a
变0时,while
结束。
为何定得如此大,是因为空循环速度很快,只有循环很多次才能获得足够长的时间间隔。
a=50000;
while(--a);
第2个
while(--a);
似乎有问题,死循环。是不是前面漏了另一个
a=50000;

相关了解……

你可能感兴趣的内容

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