两道题都是一样的问题,静态变量,局部的静态变量可以一直保留着前面的值。
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