菜鸟求助,基础c的小问题

#include
main()
{
int a=3,b=4,c;
a+=b;
b+=a;
c=(a++)*(––b);
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
请大神解释解释 运算过程

int a=3,b=4,c;
a+=b; //a = 7
b+=a; //b=11
c=(a++)*(––b); // (a=7)*(b=10)=c=70;
//计算后:
// b=10,a=8,c=70
printf("a=%d,b=%d,c=%d\n",a,b,c);
最后,就是: b=10,a=8,c=70
好像是这样子的吧

a+=b a后来的值等于a先前的值+b
a++,表达式取a自增1之前的值
--b,表达式取b自减之后的值。
结果a=8,b=10,c=70

在线上机验证
http://codepad.org/xym1lGai

举例 a+=b 就是 a=a+b 最后那个是有优先级 先算括号里的再算乘式

b=10;a=8;c=70
注意a+=b;后a=7;
b+=a后;b=7+4=11;
a++先赋值a=7,--b先减1在赋值后b=10
所以,c=7*10=70;

7 11 70关键是c的求法。后置运算符先使用,前置运算符先计算再使用。