自增自减之后的结果怎么算的

img


第三行s为什么变成5了,第四行的s为什么是10,i为什么有是4

这行能通过编译也是很奇怪的。++i不能作为左值啊
就按这个逻辑来分析,首先运行++i,使得i=6,然后执行i=j,由于j=5,所以i=5,然后执行s=i,所以s=5。最后三个都是5
根据上面的结论,第四行自然简单了,i--是先执行s=i+j,然后i才减去1,和--i是不一样的。所以s=5+5=10,然后i减去1是4

举例来说。++a 就是对于a,先自加,后使用。而a++就是对于a,先使用,后自加。