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定义到了静态存储区
   //在静态存储区的值由于某种性质不会轻易地发生变化

作者:Evinci

出处:https://www.cnblogs.com/evinci/p/17123981.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   EEvinci  阅读(108)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示