当前位置: 代码迷 >> C语言 >> 一个C程序,大家帮我解释一下好吗?
  详细解决方案

一个C程序,大家帮我解释一下好吗?

热度:247   发布时间:2008-06-01 21:33:47.0
一个C程序,大家帮我解释一下好吗?
大家帮我解释一下好吗?
main()
{
    int i=2;
    while(i--);
    printf("%d",i);
   
}
答案是:-1
搜索更多相关的解决方案: 解释  int  main  

----------------解决方案--------------------------------------------------------
问题的关键是i-- 与 --i 的区别!

while(i--)的执行过程是   先判断while(i),然后再i--,然后根据前面的判断结果来确认是否执行while后面的循环体。



如果while语句变成   while(--i);
最后输出结果就会是0。

[[it] 本帖最后由 Kid_X 于 2008-6-1 22:26 编辑 [/it]]
----------------解决方案--------------------------------------------------------
很简单,看书!
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽
2008-06-01 16:29:22
bbccca
该用户已被删除
  得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-06-01 16:56:17
liyanhong

来 自:水星
等 级:ID已被封
威 望:8
帖 子:1868
专家分:0
注 册:2008-5-3
  得分:0 
关键在于:循环体是空语句
PS:输出-1是对的
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽
2008-06-01 17:11:07
Loli

来 自:飞燕算法群46520219
等 级:新手上路
帖 子:348
专家分:0
注 册:2008-5-27
  得分:0 
建议楼主先保持好一个好的编程习惯,别一上手头文件没还,main还缺失返回值

[color=white]
----------------解决方案--------------------------------------------------------
嗯,谢谢loli的建议,不过在主函数内,return应该可以省掉吧,还是没有那个解释更好
谢谢各位的参与
----------------解决方案--------------------------------------------------------
哦,又看了一下,可能是这样的。
就像一楼说的,先执行while(i),当i变为负数的时候,循环就停止,最后输出
----------------解决方案--------------------------------------------------------