急求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);
}该程序的输出结果是多少呢? 展开
main( )
{
int a=7;
while(a--);
printf("%d\n",a);
}该程序的输出结果是多少呢? 展开
展开全部
-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;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询