i=1,j=i++,为啥输出i=2j=1?

#include
int main()
{
int a,j;
a=1;
j=a++;
printf("%d%d",a,j);
return 0;
}

后置++是先用再加,即先j=a,然后a=a+1

自增运算符有两种模式,一种前缀模式:例如:++a; 一种后缀模式:例如:a++;
这两种模式在单独使用的时候没有区别,但当和其它运算符形成复杂表达式的时候,使用效果就会有所不同;
例如:
a=a++;//后缀:使用a的值进行其它运算之后,递增a。
a=++a;//前缀:使用a的值进行其它运算之前,递增a。

你问这个问题,说明你对前加,后加不是很熟
你要记住++i,是先将 i 加1,再进行下一步
i++ 是先把 i 拿出来运算,再 ++