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

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

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

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

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

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

static对变量的影响

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

发布了83 篇原创文章 · 获赞 1 · 访问量 5900

猜你喜欢

转载自blog.csdn.net/weixin_44922845/article/details/104580514