c++全局、静态、局部变量的区别

局部变量

代码块中定义的变量被称之为局部变量。它们在其他函数的语句中是不可见的,也无法访问它们。

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

int main(int argc,char **argv)
{
    int a = 2;

    return 0;
}

这个例子里面,int 变量 a,就是一个局部变量,局部变量 a 的作用域就在 main 函数之内。出了 main 函数,就无效了。

我们学过栈内存,也知道,对于这个局部的栈变量,在函数开始的时候分配,在函数结束的时候自动被销毁掉。

全局变量

全局变量是在所有函数体的外部定义的,程序的所有部分都可以使用。全局变量不受作用域的影响,其生命周期一直到程序的结束。

int a = 2;

int main(int argc,char **argv)
{
    return 0;
}

静态变量

在有些情况下,我们申明一个全局变量会比较麻烦,尤其是项目比较大的时候,全局变量不受作用域的影响,很容易造成混淆。因此,我们引入了静态变量。静态变量受作用域的影响,其生命周期一直到程序的结束。

void func()
{
    static int a = 0;
}

我们可以在函数中申明一个静态变量。值得注意的是,这个变量的作用域虽然是在函数内,但是他并不会随着函数结束而被销毁,它会一直存在到程序的结束。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值