问一下他俩是怎么运行的呢

img

img


第一个照片里边f(k)的值,为什么是6不是3。第二个照片中,为什么是那个他得出来的f(k)为什么是六不是10?

两道题都是一样的问题,静态变量,局部的静态变量可以一直保留着前面的值。
1、第一次调用 f(3) 后,函数 f 里面的静态变量 s 的值变成了3;第二次调用 f(k) 时,函数 f 里面的 s 初始值就是3,经过for里面累加就是6了。
2、同样的道理,第一次调用 f(3) 后,函数 f 里面的 x+=y 得到 x 的值为4,静态变量 y 的值变成2;第二次调用 f(k) 时,函数 f 里面的 y 初始值就是2,x+=y 得到 x 的值为6,静态变量 y 的值变成3。

s是静态变量,第一次f函数执行后,s为3。再次执行时,s已经是3,所以再次加上3就是6