静态局部变量

静态局部变量

静态局部变量的声明方式

在局部变量的类型前加上static即可进行静态局部变量的声明和定义

{
    static int a = 0;
}

静态局部变量的作用域

和局部变量相同,从变量声明的位置起到花括号结束。

静态局部变量的生命周期

与局部变量不同,静态局部变量的生命周期是与程序“共存亡”。

即从加载资源(执行代码前)开始,到程序关闭,都是变量的生命周期。

 

为了验证此说法,可执行下列代码:

#include <stdio.h>
#include <stdlib.h>

void fun()
{
    int a = 0;
    static int b = 0;
    printf("a=%d,b=%d\n",a,b);
    a++;
    b++;
}

int main(void)
{
    fun();
    fun();
    fun();

    system("pause");
    return 0;
}

执行结果为:

a=0,b=0
a=0,b=1
a=0,b=2

因为每次执行fun函数时都要重新定义一边局部变量a,所以被打印出的a的值始终是1。

而因为b为静态局部变量,在代码执行前,即资源加载时就已经执行了"static int b = 0;"这条代码,所以在执行代码的过程中,并没有"static int b = 0;"这条代码,因为早就执行掉了,相当于这条语句已经“没了”。

验证方法:可以用断点来验证,把断点点在"static int b = 0;"这行语句前,执行时就会发现这个断点“没了”。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值