一个程序的某处,百思不得其解

来源:百度知道 编辑:UC知道 时间:2024/05/08 02:53:28
i=0;
do printf("%d,i");while(i++);
printf("%d\n",i);
答案是0,1
0我明白,就是do while先做do,后判断while
但是while里面的i++,答案说i++的值为0,但i的值是1,所以判断为假,跳出循环
i=1可以理解,但i++是0,让我很困惑
谢谢2楼的,只是我要问的是,i=0 通过i++之后i变为了1,但是i++也应该变成1呀!为什么i++仍然为0?

i=0;
do
{
printf("%d,i");
}while(i++) //++运算符的问题,i++先执行操作再进行++运算,如果是++i,会先进行++运算再执行操作,所以当执行到while(i++)的时候,先执行判断:(i++为0),再进行i++运算,结果i=1;
printf("%d\n",i);

对呀,while(i++)判断的时候(i++)=0,此时已经跳出循环,判断完后i就会自动加1,之后再输出i就是1 了,