答案00133怎么来的啊

#include

int main()

{

    int i=0;

    printf("%d\n",i);

    printf("%d\n",i++);

    printf("%d\n",i++);

    printf("%d\n",++i);

    printf("%d\n",i);

    return 0;

}
答案
0
0
1
3
3
怎么来的啊

其实这里就一个知识点
i++是先取值后++,那么print(i++)的时候,如果i此时是0,会先打印0,打印完i变成1
++i是先加后取值,那么当执行print(++i)的时候,上一行打印i的值是1,打印完把它变成2,那么先+1再打印,它不是3吗
最后一行没有++了,直接打印,i还是3没有变

第一个直接输出i的值,输出0
第二个i++是输出语句运行后自增1,输出0,i的值变化为1
第三个也是如此,输出1,i变化为2
第四个++i是i先自增1后再输出,i变化为3,输出3
第五个直接输出i的值,输出3