首先执行完a=(a--)+3;这一句后a的值为7的,而执行printf()语句是从右向左处理变量的。
意思是先处理b,显然b是5,即b=5;然后b=(b--)+3,b变成了8,即(b=(b--)+3=8,然后又是b=8;最后是a+7,因为前面计算得a=7;
值得注意的是:a--是在执行完一条语句之后再自减的。
栈和堆是数据结构里线性表和树方面的知识。
b=5;
a+%d b=%d (b=(b--)+3=%d b=%d\n
b=%d (b=(b--)+3=5-1+3=7;
a+b=%d (b=(b--)+3=a+7;----->a+7
b=(b--)+3=5+3=8;---->b=8;
---->(b=(b--)+3=9
---->b=5;
所以最后答案就是 a+7 b=8 (b=(b--)+3=8 b=5