社区
C语言
帖子详情
常量的存储方式
shycpp
2003-08-22 10:16:19
C++ Primer说文字常量和变量都有存储区。区别在于变量是可寻址的,常量所在的内存是不可寻址的。而在定义数组的维数时候要求常量或常量表达式,因为变量在编译阶段无法访问内存。那么编译阶段能访问常量的内存区吗?如何来访问常量的内存区?
...全文
110
6
打赏
收藏
常量的存储方式
C++ Primer说文字常量和变量都有存储区。区别在于变量是可寻址的,常量所在的内存是不可寻址的。而在定义数组的维数时候要求常量或常量表达式,因为变量在编译阶段无法访问内存。那么编译阶段能访问常量的内存区吗?如何来访问常量的内存区?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
紫郢剑侠
2003-08-22
打赏
举报
回复
楼上说得是.
还是用汇编比较清晰.
njtu
2003-08-22
打赏
举报
回复
常量保存在静态存储区,是在编译之前就已经确定下来的。
#define MAXSIZE 50;
编译时遇到 int a[MAXSIZE] 时已经确定数组长度为50。如果是变量,由于其值是没有确定的所以无法确定分配内存的长度。
如果你想使用动态数组,可以自己new或使用vector
编译阶段访问常量内存区?只有程序运行时系统才会给他分配资源,编译时只是给你的编译器分配了资源(内存、堆栈等),这时还没有分配内存,何谈访问呢?
jrhjrh
2003-08-22
打赏
举报
回复
不能访问
Bandry
2003-08-22
打赏
举报
回复
常量都存放在内存的静态存储区
aflyinghorse
2003-08-22
打赏
举报
回复
我的理解是数组的维数要求是编译期常量表达式
即可以在编译期进行求值,它不占内存空间
maxcai
2003-08-22
打赏
举报
回复
关注中
03Go语言实战之变量与
常量
课程介绍了go语言当中的变量和
常量
使用方法,包含了变量的声明
方式
、简短变量声明、变量的作用域、指针、按值传递和按址传递的区别、
常量
介绍
全局/静态
存储
区、
常量
存储
区
全局/静态
存储
区:全局变量和静态变量被分配到同一块内存中;
常量
存储
区:存放的是
常量
,是不允许修改的。 静态
存储
是main函数运行前分配内存并初始化;
常量
存储
是固化在执行文件上的数据。 栈的方向和平台有关,一般来说,windows由高地址向低地址增长,linux相反,但基于linux的第三方系统得看实际情况才知道。
常量
存储
区里面的数据是放在代码段里的,不占内存。 静态
[字符串
常量
]是如何储存的
问题:你有没有想过,当你声明一个简单的字符串
常量
的时候,发生了什么?这些字符串放到了哪里?讲道理,这里的变量 str 是该字符串的地址,那么hello world存到了哪里?char *str="hello world"; 解决: 是这样,这个 hello world 作为字符串
常量
被存到了静态
存储
区中。要更好的理解我们需要一些概念: 三种
存储
空间:堆、栈、静态
存储
区 1、
字符串
常量
存储
总结
常量
存储
总结 局部变量、静态局部变量、全局变量、全局静态变量、字符串
常量
以及动态申请的内存区 1、局部变量
存储
在栈中 2、全局变量、静态变量(全局和局部静态变量)
存储
在静态
存储
区 3、new申请的内存是在堆中 4、字符串
常量
也是
存储
在静态
存储
区 补充说明: 1、栈中的变量内存会随着定义所在区间的结束自动释放;而对于堆,需要手动free,否则它就一直存在,直到程序结束; 2、对于静态存...
内存
存储
:全局/静态
存储
区、
常量
存储
区
全局/静态
存储
区:全局变量和静态变量被分配到同一块内存中;
常量
存储
区:存放的是
常量
,是不允许修改的。 静态
存储
是main函数运行前分配内存并初始化;
常量
存储
是固化在执行文件上的数据。 栈的方向和平台有关,一般来说,windows由高地址向低地址增长,linux相反,但基于linux的第三方系统得看实际情况才知道。
常量
存储
区里面的数据是放在代码段里的,不占内存。 静态
存储
区是在内存空间中的,在其...
C语言
69,368
社区成员
243,081
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章