C语言中的静态变量

2024-11-22 04:11:18
推荐回答(3个)
回答1:

  1. 用static声明的变量是静态变量,比如static int a =4;这个a的初始值为4(仅仅是初始值),并且这个变量是一直存在的。

  2. 几个a并不是同一个a,我们可以把程序中的a改一下名字,方便理解。如下:

    #include
    int fun(int n)
    {
    static int a =3;
    int t =0;
    if(n%2)
    {
    static int b =4;
    t+=b++;
    }
    else
    {static int c =5;
    t+=c++;
    }

    return t+=a++;
    }
    main()
    {
    int i,s=0;
    for (i=0;i<3;i++)
    s+=fun(i);
    printf ("%d\n",s);
    }

  3. 开始在稿纸上分析。


回答2:

调用函数执行完之后局部变量空间会释放,但是如果是static静态变量就不会被释放。

回答3:

这两个都是静态局部变量,static int a =4;因为在if程序块中,它的有效区域更小。

静态局部变量的特点,静态是说,在同一个进程中第二次调用是上次运算过的值,局部变量是在函数内部,包括main函数内部声明的变量。。。