Drgata 2019-12-08 23:29 采纳率: 0%
浏览 233

为什么static会改变呢?

#include<stdio.h>
 int main()
{
    void fun();
    int i;
    for(i=0;i<=3;i++){
        fun();
    }
}

void fun()
{
    int i=0;
    static int static_i=0;
    printf("i=%d\n",i);
    printf("static_i=%d\n",static_i);
    i++;
    static_i++;
}
  • 写回答

1条回答 默认 最新

  • 柒壹漆 2019-12-09 14:34
    关注

    为什么不会,static定义类似于全局变量定义,你多次调用fun()函数,但是只有第一次才会给static_i 赋值0,而i是每次调用fun()都会先赋值0

    评论

报告相同问题?