C语言初学者的一个问题

main()
{
Int i =10,j=1;
i =i+j++;
Printf ("%d,%d,%d",i++,++j,i);
}
为什么答案是11,3,11
不应该是11,3,12嘛

printf()参数是从右边开始执行的
printf ("%d,%d,%d",i++,++j,i);
是先执行i,之后执行++j,最后才执行i++

i=i+j++的值是11,++在后面是先计算i+j的值返回给i,然后在j再加1;
输出是从右往左运算的。