main中for循环两次,fun函数中do...while循环到++j<2就结束了,所以数组只会处理前三个元素
第一次循环调用fun函数
j为静态变量,初始为0
那么s[0] += s[1],使得s[0]值变为1+2=3
然后++j后j变为1,由于j<2成立,继续执行s[1] += s[2],使得s[1] = 2+3=5
然后++j后j变为2,j<2不成立,fun函数结束
====
第二次循环调用fun函数
j为静态变量,上次循环已经变为2
do循环执行s[2] += s[3],使得s[2] = 3+4 = 7
然后++j后j变为3,j<2不成立,fun函数结束
最终数组元素就是 3 5 7 4 5
第1个for循环后,a[]={3,5,7,4,5,0,0,0,0,0}了,a[3],a[4]并没有改变,所以第2个for循环自然就打印出a[4],a[5]了。