• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

每次进函数内的static 变量,都会清零吗?

huihui163 2020-08-28 浏览量:1758

static int a = 0;

a++

这是函数内定义的,每次进这个函数内的变量a都是清零?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 我这样给你说吧:

    void fun(void){

    static int a = 0;

    a++;


    第一次调用fun()函数,a=0;a++之后,a=1;


    第二次在执行fun()函数的时候,a初始为1,a++之后,a=2;


    第三次在执行fun()函数的时候,a初始为2,a++之后,a=3;

    以此内推

    • 发布于 2020-08-29
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:12
  • 不会清零的,属于静态全局变量
    • 发布于2020-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 会的,因为你每次进函数时,都进行了初始化,都是0了,如果只是定义,不初始化,那么这个值是不会变的
    • 发布于2020-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般是不会变的,但你定义的时候初始化了,所以,每次都是0
    • 发布于2020-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 不会清零。下面若对该变量有操作赋值,每次进去会是赋值后的状态。
    • 发布于2020-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 不会清零,static int a = 0;只会初始化一次,之后的a就是函数内全局变量。
    • 发布于2020-08-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 不会清零,其中a只初始化一次,之后就是普通的函数内全局变量。
    • 发布于2020-08-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 不会清零的,局部静态变量或全局静态变量,会在程序运行期间一直存活。


    • 发布于2020-08-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 不会,这个只在main()之前初始化一次,之后数据一直保持在ram中。
    • 发布于2020-08-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 不会,static变量保存在静态变量区,跟全局变量一起保存,而不是在栈里面
    • 发布于2020-08-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 不会清零的,如果不加static在局部函数里面会清零,这个就是类似程序开始的时候在全局变量定义了一个a=0,后面这条语句在局部函数里面可以忽略
    • 发布于2020-08-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 对于函数内的静态变量,是用特殊区域来存储的,所以只有第一次使用函数时才初始化变量,后面的调用将不再初始化,而是直接用。

    比如

    int outA(){
        static int a =0; // 这句声明同时初始化,只执行一次
        a++;   // 每次调用都执行
        return a;
    }
    
    //所以
    b=outA();//执行完后b=1
    b=outA();//执行完后b=2
    
    int outB(){
        static int b; // 这句声明同时初始化,只执行一次
        b=0; //这句话每次进入函数调用都会执行
        b++;   // 每次调用都执行
        return b;
    }
    
    c=outB();//执行完后c=1
    c=outB();//执行完后c=1,虽然调用中的b变量是静态的,但后面又专门赋值为0,所以执行下来,输出永远是1.


    • 发布于2020-09-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 不会清零,因为这个一个静态变量
    • 发布于2020-09-29
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

每次进函数内的static 变量,都会清零吗?