Loading

static定义变量的值问题

static定义变量的值问题

   #include <stdio.h>
   int f(int x)
   {  
      static int y=1;
      x+=y;  
      y++;
      return x;
   }
   int main(void)
   {  
      int k;
      k=f(3);
      printf("%d %d\n",k,f(k)); //%d和%d之间只有1个空格
      return 0;
   }
   //这题输出的结果是4 6
   //说明static定义的y在重新执行static int y = 1;后没有发生值的i变化
   //可能是因为static关键字将y定义到了静态存储区
   //在静态存储区的值由于某种性质不会轻易地发生变化
posted @ 2021-12-11 16:43  EEvinci  阅读(104)  评论(0编辑  收藏  举报