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

C++----变量存储空间

一个典型的可执行程序在运行时的内存布局大致如下:

区域英文名内容特性
代码段.text可执行机器指令只读 + 可执行
只读数据段.rodata常量字符串、const 全局变量(有时)只读
数据段.data已初始化的全局/静态变量可读可写
BSS 段.bss未初始化的全局/静态变量可读可写,程序启动时清零
heap动态分配的内存(new / malloc可读可写
stack局部变量、函数调用信息可读可写

常量区≈只读数据段,可以对照上下进行匹配。

区域说明
代码区 (Text Segment)存放程序指令、常量字符串、只读常量
全局/静态区 (Data Segment)存放全局变量、静态变量(分为初始化和未初始化两部分)
常量区 (Read-only Segment)通常包含只读常量,如 "abc" 字符串字面量、const 全局常量
栈区 (Stack)局部变量、函数参数
堆区 (Heap)动态分配(new / malloc)的数据
情况是否在常量区说明
const int a = 10; (在函数外)✅ 常量区(只读)全局作用域,静态存储期
const int a = 10; (函数内)❌ 栈区局部变量,仍在栈上,只是不能改值
static const int a = 10;✅ 静态区(可能合并到常量区)静态存储期
const char* s = "hello";"hello" ✅ 在常量区s ❌ 在栈区指针在栈上,指向常量区字符串
const int arr[] = {1,2,3}; (全局)✅ 常量区静态存储期
const int arr[] = {1,2,3}; (函数内)❌ 栈区数组内容在栈上,不能修改

关于C++中是否给const全局变量开辟空间,可以看这一篇博文:c语言中const修饰的局部变量和全局变量存放在哪个区域_const定义的全局常量存储在-CSDN博客

http://www.dtcms.com/a/497128.html

相关文章:

  • 天津正规网站建设调试公司wordpress recaptcha
  • 如果让你建设网站之前你会想什么seo关键词优化软件合作
  • 阿里巴巴吧网站怎么做开发网站的过程
  • 怎么做网站例如京东口碑好的网站推广软件
  • 百度网站地图天津网站建设-中国互联
  • 高效学习闭环:如何导出功能构建可复用的知识库?
  • 网站建设汇报评估关键词推广是什么意思
  • 外贸商城网站开发静安手机网站建设
  • 怎么做代理网站项目管理软件免费
  • 网站设计计划漳州模板网站建设
  • 网站管理与维护方案开个人网站如何赚钱
  • 哪里有做网站排名优化教学成果申报网站 化工专业建设
  • 做网站推广员工中企动力是不是国企
  • 外包网站都有哪些网络考试
  • 律师行业做网站的必要性珠海市住房和城乡建设局网站
  • 做服装到哪个网站拿货品质好中国建筑网官网企业愿景
  • Windows 固定 U 盘或移动硬盘的盘符
  • 做足彩推荐赚钱的网站手机访问跳转手机网站
  • 装修公司网站建设长春火车站照片
  • Linux 教程:如何查看服务器当前目录中的文件
  • 做网站备案与不备案的区别网站申请备案流程
  • Datawhale25年10月组队学习:math for AI+Task2线性代数
  • 南昌网站建设基本流程濮阳网站建设专家团队
  • 常州网站建设设计建设视频网站要求吗
  • 自己怎么搭建个人博客网站爱站工具包手机版
  • 石家庄微网站个人博客是什么
  • 第19讲:数据在内存中的存储
  • 湛江企业建站程序竞价网站托管
  • 做网站网站代理怎么找客源贵阳网站建设多少钱
  • 商城网站建设论坛买正品东西哪个网最好