非静态局部变量和静态局部变量

如果 static int m=0;
是某函数中的局部变量,那么这个变量只被初始化赋值为0一次,
当这个函数被多次调用时,除第一次被调用时 m 的内容被初始化为0外,
以后每次调用时,m 都会在上一次函数被调用时产生结果的基础上继续运行的。
例如 第一次调用 m被初始化为0, 函数运行结束时 m 的内容为 5,
        第二次调用 m的内容就是5,并在次基础上继续运行程序。
 
如果m是在某函数内部定义的局部变量,则m只在该函数内部有效
m如果是全局变量,就会在定义语句之后的所有函数内有效。

 

非静态的局部变量,在一个函数运行结束时,存储空间就被释放了,所以非静态的局部变量不可能保存变量在上一次函数被调用时产生的内容。
因此,对于静态局部变量:
        第一次调用 m被初始化为0, 函数运行结束时 m 的内容为 5,
        第二次调用 m的内容就是5,并在次基础上继续运行程序。
对于非静态局部变量:
        第一次调用 m被初始化为0, 函数运行结束时 m 的内容为 5,
        第二次调用 m的内容仍然被初始化为0,并运行函数,m的内容与前一次被调用的状态无关。
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值