二楼解释的有点不太全面,我再好好的解释一下吧!
static int a ;这样每次函数调用的时候都会保存上一次计算的结果!(为什么呢??自己回去好好的查查资料)
比如你的这个程序中,第一次调用函数f()的时候运算a的值为5,当第二次调用f()的时候a的值就是从5开始了呀!而不是你想要的还是0。如果有问题,可以方便加我的QQ:122392279
二楼的解释够了。静态变量的生命周期是创建后到该程序结束,注意,不是函数结束!LZ说“ 我觉得每次调用f函数,a就被重新初始化为0了啊”
二楼说:“只要第一次初始化后,就不用初始化了。”回答的刚刚好。静态变量和局部变量的不同就出来了。
三楼的“static int a ;这样每次函数调用的时候都会保存上一次计算的结果!(为什么呢??自己回去好好的查查资料)”
查什么资料?看二楼。