急求c语言的问题!~谢谢各位高手~~

#include<stdio.h>main(){inta=7;while(a--);printf("%d\n",a);}该程序的输出结果是多少呢?... #include<stdio.h>
main( )
{
int a=7;
while(a--);
printf("%d\n",a);
}该程序的输出结果是多少呢?
展开
 我来答
网络狼520
2012-03-14 · TA获得超过344个赞
知道答主
回答量:38
采纳率:0%
帮助的人:50.2万
展开全部
-1,这道题的难点在while(a--)的理解。while()的使用时当括号里成立的时候,继续循环,whlie(a--)后面为一个空语句,所以这个循环什么也不做。只是a自减。C中有逻辑值,当一个判断不成立时,它的返回值为-1,成立时为1。而这里面当a--到-1时,就等价于括号里面为假,这时跳出循环
更多追问追答
追问
谢谢你,那如果把(--a)改为(a--)结果有区别没啊?while语句直接循环就可以了么??真的谢谢你了。。
追答
有区别~因为--a和a--其实还有有区别的,--a取的是自减后的值,而a--整体的值为自减前的值,这样说比较抽象,我给你写个代码你自己看看,然后好好理解一下。
#include
void main ()
{
int a=1,b=1;
printf("%d %d\n",--a,b--);
}
好好理解一下这个程序,然后上面的问题就解决了,当a取到0时,--a整体的值已经为-1了,所以在a=0时就跳出,所以输出应该是0;
匿名用户
2012-03-14
展开全部
结果是-1。
while(a--);会一直执行到a=0为止,之后再-1,就变成-1了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sgxwxlq
2012-03-14 · TA获得超过218个赞
知道小有建树答主
回答量:382
采纳率:0%
帮助的人:236万
展开全部
结果是-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式