2月18号NK笔记
一,关于static的使用
源码:
#include <stdio.h>
int fun(int x)
{
static int a=3;
x+=a++;
return x;
}
int main()
{
int x=2,sum;
sum=fun(x);
sum=sum+fun(x);
printf("%d\n",sum);
}
运行结果:
但是当我把static去掉之后结果就变成了:
看到NK的解析说,使用static会保存上次a的值。因为第一执行sum完后a的值已经变成了4,用了static后开始运算第二个sum的时候,a的初始值就不是3了而是4.
但是去掉了static的话就不会保存上次的值,即第二次sum的时候a还是3.还有一点哦!就是fun(x)中的x是形参,两次都是2,没有变!!!