[C++] 全局变量与局部变量的区别

全局变量与局部变量的区别

答:1. 作用域上,全局变量是全局作用域,局部变量是局部作用域(空间区别)
       2.内存分配上,全局变量在静态数据区,静态局部变量在静态数据区,非静态局部变量在栈(空间区别)
       3.生命周期上,全局变量存在于整个程序运行期间,静态局部变量存在于整个程序运行期间,非静态局部变量存在于局部函数内部或局部循环体内部(时间区别)
       4.对外链接上,非静态全局变量其他文件也可以使用,静态全局变量和局部变量其他文件不可以使用(外链区别)

全局变量与局部变量区别汇总

内存分配位置影响生命周期

静态全局变量非静态全局变量静态局部变量非静态局部变量
作用域全局全局局部局部
内存分配静态数据区静态数据区静态数据区栈区
生命周期整个程序整个程序整个程序局部函数体
对外链接不允许允许不允许不允许

static对变量的影响

答:1. 使得静态局部变量内存分配在静态数据区,导致延长了生命周期
       2.使得静态全局变量无法被其他文件使用,局限了其文件链接

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值