老程序员的解答希望你能满意
结果是0、1、1、2吗?
k=0时,调用f(),此时f0 = -1,进入if, 修改f0 为0 ,返回0,f()结束;打印0
k=1时,调用f(),此时f0 = 0,不进入if;f1=0, 修改f0 为1 ,返回1,f()结束;打印1
k=2时,调用f(),此时f0 = 0,不进入if;f1=1,不进入if;f2=0+1=1,f0=1,f1=1,f()结束,返回1,打印1
k=2时,调用f(),此时f0 = 1,不进入if;f1=1,不进入if;f2=1+1=2,f0=1,f1=2,f()结束,返回2,打印2
望采纳! 谢谢
k为零时执行第一个if,返回一个值
k为1时,执行第二个if,返回一个值
接下来不满足if条件,会执行后面的语句,返回一个值
由于 static修饰变量,所以在程序运行期间这个变量一直都在,不会自动销毁,所以可访问
考点就static修饰的变量只被定义一次,程序结束后销毁。所以多次调用f()函数,只会执行一次
static int f0=-1, f1 = 0;以后再调用f()函数,f0,f1的值是之前的。这个属于常考点
0112
第一个if是当f0等于-1的时候,给f0赋值为0,函数返回0结束
第二个if是当f1等于0的时候,给f1赋值为1,函数返回1结束