1、static作用:在int f()函数中,用static方式定义变量n,且赋初值0,表示该函数运行完,这个变量n不释放,下次再运行该函数时,变量n保持前一次运行结束时的值(不再赋初值0)
2、在本程序中,第一次printf("%d",f(++n));中,先给n加1,即n=1,然后再执行函数 f(),这时将函数中的形参m=1(注意:主程序中的变量n,与子程序 f()中的n,不是一个变量)
结果在子程序 f()中,n+=m;,即n+=1,因而输出个1
3、第二次printf("%d",f(n++)); 是先执行,f(n),然后再执行n++,但输出的是,f(n)的结果
这时n=1(主程序中的n),即执行,f(1),这次在子程序中,n的初值是1,再加1,结果是2,因而再次输出一个2,连续两次的结果,就成了12,其实是1 和2,不是12
温馨提示:答案为网友推荐,仅供参考