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

 我来答
国孝谭辛
2019-10-15 · TA获得超过3.8万个赞
知道大有可为答主
回答量:1.4万
采纳率:29%
帮助的人:637万
展开全部
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,不循环了。
金彩荣费绫
2019-10-15 · TA获得超过3.8万个赞
知道大有可为答主
回答量:1.4万
采纳率:25%
帮助的人:739万
展开全部
1.
区别在于判断while之前减还是之后减,也就是在相同的a初始值情况下,--a会比a--少循环一次,因为当a=1的时候,第一个--a就会退出循环,第二个不会。
2.
while和for语句有区别,就是在循环体内,无论你使用两者哪个,a在进入循环体都已经发生了-1,也就是说,a相等情况下,两种进入循环后的数值相同,就是循环差了一次。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牵爱景钭秋
2020-01-08 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:33%
帮助的人:945万
展开全部
这里牵扯到的就是--a和a--的区别呢。这么说吧。假如b=--a;程序执行分两步,第一步a
=
a-1;第二步b=a;而如果是b=a--;则第一步和第二步反过来执行。假如a=8;执行b=--a后a=b=7;执行b=a--后b=8,a=7;同样执行++时也是一样的道理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
华若谷劳倩
2019-10-15 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:31%
帮助的人:849万
展开全部
我估计,那是用来作时间间隔控制。while(--a);
是循环50000次,当a
变0时,while
结束。
为何定得如此大,是因为空循环速度很快,只有循环很多次才能获得足够长的时间间隔。
a=50000;
while(--a);
第2个
while(--a);
似乎有问题,死循环。是不是前面漏了另一个
a=50000;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式