#include <stdio.h>
void main()
{
int y=10;
while(y--)//强烈建议楼主以后不要在while()后面直接写;或者语句了。
;
printf("%d\n");
}
这里的关键是y--(滞后自增)出现在条件表达式中,其行为原则是:
先用y的原值参加条件判断,在判断完后,立刻减1;也就是说,如果在while()循环中加一个
printf("%d ", y);
你会发现,输出的第一个数不是10,而是9!
那么,当y的值为1的时候,while(y--)里的条件表达式依然是真值,进入到循环内部后,y的值为0了;
再继续到while(y--),此时y的值为0,条件为假,循环结束,但在循环结束前,y的值被减成了-1,所以最后输出的是-1
[
本帖最后由 犬虫门心 于 2011-2-24 17:57 编辑 ]