for语句里面的条件更新

关于for语句里面的条件更新问题:
麻烦看下这段代码,求解答(在devc++上运行的)
#include
int main()
{
int i;
while(1)
{
printf("%d\n",i,i++);
if(i==10)
{
break;
}
}
printf("\ni=%d",i);
return 0;
}
这个代码打印的结果是这样的
1
2
3
4
5
6
7
8
9
10

i=10
如果第九次循环后就是9了再经历一次i++不是会自增变成10吗,从而跳出循环,为啥还会打印出一个10

你的意思我明白了,因为你的i++,在前面,break在后面,在i=10的时候,会先执行输出语句里面的,然后再执行下面那个break

你的i未初始化这点很危险,局部变量不初始化是随机值。
printf函数中的计算是从右向左进行的。