常量的存储方式

shycpp 2003-08-22 10:16:19
C++ Primer说文字常量和变量都有存储区。区别在于变量是可寻址的,常量所在的内存是不可寻址的。而在定义数组的维数时候要求常量或常量表达式,因为变量在编译阶段无法访问内存。那么编译阶段能访问常量的内存区吗?如何来访问常量的内存区?
...全文
110 6 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
关注中

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧