在while里的增量运算符有点没搞明白
增量运算符和顺序点的问题有点 没明白,下面是代码一:#include <stdio.h>
int main (void)
{
int count, sum;
count = 0;
sum = 0;
while (count++ <20)
{
sum = sum + count;
printf ("sum = %d\n", sum);
}
getch ( );
return 0;
}
运行结果是:
sum = 1
sum = 3
sum = 6
……
==================================================
代码二:
#include <stdio.h>
int main (void)
{
int i;
i = 1;
while ( i++ < 5)
{
printf ("早上好啊! ");
}
return 0;
}
输出结果是:
早上好啊!早上好啊!早上好啊!早上好啊!
=============================================
不解:
在代码一中,count++ <20是while循环的判断条件,是完整表达式,c要保证副作用,所以会先加上1了再进行后面的语句,因此第1个结果是sum = 1而不是 sum = 0. 如果按照这个思路的话,代码二中的 i++ < 5也一样要先加1了再进行后面的语句啊,结果就应该只是显示3个“早上好啊”而不是4个,可运行结果是4个,想不通啊?谢谢您了 !
[ 本帖最后由 yaozuo3292 于 2012-4-10 15:03 编辑 ]