想问一下这个结果怎么算出来的?为什么我算的是3和3啊?

#include<studio.h>
main()
{
int i=3;
printf("%d %d",i++,i--);
}
这个结果为什么是2,3啊,我怎么算都是3和3啊

从右向左执行。
先执行i--,由于是后自减,所以先使用i后减1
所以输出3
此时减1后,变为2,然后执行i++,先输出i,
所以输出2

这是因为C语言函数调用传参数的问题
参数从右到左压栈,所以是先i--然后i++