若变量已经正确定义,则下列程序段输出的结果为什么是0,1,而不是程序进入无限循环

ⅰ=0
do Printf("%d",i)
While (i++)
Printf ("%d",i)

img

i的初始值是0,进入do while循环,输出0,然后i++,输出1,而因为是i++而不是判断,所以继续循环的条件不成立,控制台就是01。


# include <stdio.h>
int main(void)
{
    int i = 0;
    do{
        printf("%d", i);
    }
    while (i++);
    printf("% d",i);
    return 0;
}

i = 0
do执行完毕后就退出循环了
然后i++变成1
while()里面是先判断,再自加