C++局部变量,全局变量,static关键字,extern关键字

本文详细介绍了程序设计中的变量作用域,包括局部变量和全局变量。局部变量在函数内部定义,执行完毕后被清理,而全局变量在整个源程序中有效。extern关键字用于在需要的地方引用全局变量,而static则限制变量或函数的作用域仅限于当前源文件。此外,static还改变局部变量的存储方式,使其在程序运行期间只初始化一次。
摘要由CSDN通过智能技术生成
  1. 局部变量
    函数内部定义的变量,包括main函数,都是局部变量,局部变量一般存储在动态存储区,函数执行完毕就被清理了。
    复合语句{}中定义的变量,也就是在大括号{}中定义的变量。
    局部变量可以和外部变量重名,此时在局部变量作用域内,一直用的是局部变量

  2. 全局变量
    在函数外定义的变量,也就是在main函数前面定义的变量。全局变量的作用域是定义位置到该源程序(.cpp文件)结束的位置。
    如果想要在本源程序中,但是在全局变量定义前使用它,需要extern外部变量说明一下;
    如果想要在同一个项目但是不同源程序中使用这个全局变量,也要extern外部变量说明一下;

  3. 总结extern用法
    全局变量定义之前,或者想要在另一个源文件中用同一个全局变量,需要extern外部说明一下,说明的时候不能初始化和赋值,仅仅是说明一下,extern A;

  4. static用法
    1、static限定全局变量时,让全局变量固定死在本cpp文件中,其他源程序无法extern它;

    2、static限定局部变量时,局部变量不再存储在动态存储区,而是静态存储区,向全局变量似的了,只在编译的时候初始化一次,以后再初始化都会忽略。

    3、static限定函数的时候,函数变成static函数,只能在本源程序中使用;

    所以,static不管修饰全局变量,局部变量还是函数,都是把他们限定死在本cpp文件中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值