大一学生想问一下这个是为什么

#include
void main()
{
int i=-1;
for(;i++;)
printf(“%d”,i);
}
这个输出为什么是0?如果把-1变成-2输出又变成了-10,真的不懂。

当 i=-1时 ,for循环判断 i不是0,执行for循环,由于i++,进入循环时 ,i会加上1 ,所以 -1+1=0,printf输出了0,再次循环时 ,由于i为0 ,所以循环结束
当 i=-2时 ,for循环判断i不是0,执行for循环,由于i++,进入循环时 ,i会加上1,所以-2+1=-1,printf输出了-1,再次循环时 ,由于i=-1,所以继续循环,与上面i=-1就是一个逻辑了,会输出0,因此最终输出的是 -10