社区
C++ 语言
帖子详情
const的内存布局?
Microsues
2011-09-06 07:13:47
C++中,const修饰的对象的内存布局是怎样的?
大牛 @@bnu_chenshuo
http://weibo.com/n/bnu_chenshuo
在微博指出:stack, bss, data, rodata, heap, "register" 之一。
那位能否各举一例对应上面的情况?
...全文
118
7
打赏
收藏
const的内存布局?
C++中,const修饰的对象的内存布局是怎样的? 大牛 @@bnu_chenshuo http://weibo.com/n/bnu_chenshuo 在微博指出:stack, bss, data, rodata, heap, "register" 之一。 那位能否各举一例对应上面的情况?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
taodm
2011-09-06
打赏
举报
回复
楼主啊,你到你认为的那个大牛的微博去回评论,求答案吧。
解铃还须系铃人啊。
免得这里的人误导你啊。
yby4769250
2011-09-06
打赏
举报
回复
const限定的不是存储位置(除了某种情况下const会导致常量折叠而没有存储位置之外),而是限制读写权限,因此跟不加const时,变量在哪就是哪
至善者善之敌
2011-09-06
打赏
举报
回复
[Quote=引用 4 楼 babilife 的回复:]
int a = 0; 全局初始化区
char *p1; 全局未初始化区
const int g=10; 常量区
main()
{
const int h=1; 栈
int b; 栈
char s[] = "abc";栈
char *p2; 栈
……
[/Quote]
其实上面的局部和全局的COSNT我并拿不准他具体在什么位置存储
引用《C++编程思想》中的一段
C/C++ code
C++中的const默认为内部连接,也就是说,const仅在const被定义过的文件里才是可见的,而在连接时不能被其他编译单元看到。当定义一个const时,必须赋一个值给它,除非用extern作出了清楚的说明。
通常C++编译器并不为const创建存储空间,相反它把这个定义保存在它的符号表里。但是extern强制进行了存储空间分配(另外还有一些情况,如取一个const的地址,也要进行存储空间分配),由于extern意味着使用外部连接,因此必须分配存储空间,这也就是说有几个不同的编译单元应当能够引用它,所以它必须存储空间。
至善者善之敌
2011-09-06
打赏
举报
回复
int a = 0; 全局初始化区
char *p1; 全局未初始化区
const int g=10; 常量区
main()
{
const int h=1; 栈
int b; 栈
char s[] = "abc";栈
char *p2; 栈
char *p3 = "123456"; 123456\0在常量区,p3在栈上。
static int c =0; 全局(静态)初始化区
p1 = (char *)malloc(10);
p2 = (char *)malloc(20);
分配得来得10和20字节的区域就在堆区。
strcpy(p1, "123456"); 123456\0放在常量区,编译器可能会将它与p3所指向的"12345
6"优化成一块。
}
jackyjkchen
2011-09-06
打赏
举报
回复
不过你要考虑常量折叠不分配内存
全局变量const型也默认了static
xunxun
2011-09-06
打赏
举报
回复
强烈建议这种一一列举的分数至少给到300分
jackyjkchen
2011-09-06
打赏
举报
回复
……两条裤衩了,别玩这种一一列举的措辞了
你去掉const他在什么位置,那const之后一般不变
C# Struct的
内存
布局
问题解答
介绍了C# Struct的
内存
布局
问题解答,有需要的朋友可以参考一下
免费下载:C语言难点分析整理.doc
35.
内存
对齐与ANSI C中struct
内存
布局
173 36. 冒泡和选择排序实现 180 37. 函数指针数组与返回数组指针的函数 186 38. 右左法则- 复杂指针解析 189 39. 回车和换行的区别 192 40. 堆和堆栈的区别 194 41. 堆和堆栈...
10分钟实现微信小程序支付功能
四,编写云函数pay 完整代码如下 //云开发实现支付
const
cloud = require('wx-server-sdk') cloud.init() //1,引入支付的三方依赖
const
tenpay = require('tenpay'); //2,配置支付信息
const
config = { appid:...
c语言----与
const
常量有关的
内存
分配
这篇文章时对c
内存
分配的一些思考,主要解释以下几点问题: 1.
const
是不是存放在常量区中??? 2. 全局变量与常量区的关系??? 3. 为什么指针可以改变局部
const
数组内容而不能改变其局部
const
的内容??? ...
内存
管理--
内存
布局
内存
管理——
内存
布局
代码区、常量区、静态区(全局区)、堆区、栈区
const
关键字详解 底层
内存
分布 代码区:存放程序的代码,即CPU执行的机器指令,并且是只读的; 常量区:存放常量(程序在运行时不能被改变的...
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章