s=1
i++的意思是先使用i的值然后再自加1
++i的意思是i先自加1然后再运算使用
s+=1的意思是s+1的运算结果赋给s
所以s+=i++ 之后 s=1 i自加1等于2 执行第二次同样的运算的话 同理s+=i++
第二次s为2 i=2
绝对正确
i++表示的是,先引用,后自加;s+=a等价于s=s+a,所以,应该是这样算才对,先引用i=1,然后s=s+i,s=0,i=1;所以最后s等于1;引用第二次后是i=2了,s等于1,加加起来就是s=2+2=4;一次类推,第三次就是s=7了,我上司这样理解的,i++才是先自加,后引用。
按照运算符的优先级,原式可写为s+=(i++)。i++是在运算后才进行自增,因此s=0+1=1;i=1。
同理:第二步的s=1+1=2。
i=i+1可以变为i++.
假如s=0,i=1,s+=i++之后s = 1,i = 2 。
如果再执行一遍s+=i++之后s = 3, i = 3。
原因是‘+=’属于赋值运算符,由于运算符的优先级,会先执行s=s+i,然后再执行i++
s+=i表示s=s+i,s+=i++,先进行s=s+i,得S=1,i=1,再i自加,得i=2