当前位置: 首页 > news >正文

【c++面试问答】全局变量和局部变量的区别

问题

C++中的全局变量和局部变量有什么区别?

注:内容全部参考自文末的参考资料

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

可以从以下4个角度来区分:

区别全局变量局部变量
作用域全局作用域局部作用域
内存分配全局变量在静态数据区静态局部变量在静态数据区,非静态局部变量在栈区
生命周期存在于整个程序运行期间静态局部变量存在于整个程序运行期间,非静态局部变量存在于局部函数内部或局部循环体内部
对外链接①全局变量可以在当前文件的任何地方使用
非静态全局变量可以在其他文件上使用,静态全局变量不能在其他文件上使用
局部变量不能在其他文件上使用,只可以在局部的函数中使用

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

这部分内容在C++问题 32_C++内存管理是怎样的 中也有过总结,这里再汇总一下。

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

补充:static对变量的影响

● 使得静态局部变量内存分配在静态数据区,导致延长了生命周期

● 使得静态全局变量无法被其他文件使用,局限了其文件对外链接

参考资料

[C++] 全局变量与局部变量的区别 https://blog.csdn.net/weixin_44922845/article/details/104580514

http://www.lryc.cn/news/3671.html

相关文章:

  • Java List集合
  • linux服务器挂载硬盘/磁盘
  • Java 抽象类
  • OpenPPL PPQ量化(5):执行引擎 源码剖析
  • 【脚本开发】运维人员必备技能图谱
  • N字形变换-力扣6-java
  • 概论_第5章_中心极限定理1__定理2(棣莫弗-拉普拉斯中心极限定理)
  • 详细解读503服务不可用的错误以及如何解决503服务不可用
  • 【前端vue2面试题】2023前端最新版vue模块,高频17问(上)
  • 数据库(三):多版本并发控制MVCC,行锁的衍生版本,记录锁,间隙锁, Next-Key锁(邻键锁)
  • c# 自定义隐式转换与运算符重载
  • 【MyBatis】| MyBatis的逆向⼯程
  • Python|每日一练|哈希表|罗马数字|图算法|圆周率|单选记录:给定数列和|罗马数字转整数|计算圆周率
  • 分布式之分布式事务V2
  • 算法笔记(二)—— 认识N(logN)的排序算法
  • 最长湍流子数组——滚动窗口,双指针,暴力求解
  • 45.在ROS中实现global planner(1)
  • Java中导入、导出Excel——HSSFWorkbook 使用
  • c#数据结构-列表
  • Sa-Token实现分布式登录鉴权(Redis集成 前后端分离)
  • leaflet显示高程
  • 电子学会2022年12月青少年软件编程(图形化)等级考试试卷(三级)答案解析
  • ubuntu 驱动更新后导致无法进入界面
  • 解决访问GitHub时出现的“您的连接不是私密连接”的问题!
  • 初识数据仓库
  • FilenameUtils工具类部分源码自研
  • 【前端领域】3D旋转超美相册(HTML+CSS)
  • Java——聊聊JUC中的原子变量类
  • elasticsearch索引与搜索初步
  • 【Python】多线程与多进程学习笔记