C语言中系统既然不给常量分配存储空间,那么编译系统又是如何"记忆"和使用常量的呢? 40

 我来答
匿名用户
2011-12-05
展开全部
耐心看完,你应该能明白了:
C语言中,常量和变量是放在不同的"段"(section)里,程序一旦加载,常量/变量自然都在内存里了。
常量和全程变量,放在初始化段。
局部变量,通常在栈里。
常量在程序加载时同时加载。
靓丽还清湛的标兵5177
2011-12-05 · TA获得超过1649个赞
知道小有建树答主
回答量:1032
采纳率:100%
帮助的人:990万
展开全部
在预编译中有一些编译级的“变量”,常量表中,但它们必需是在编译前忆经确定的值,翻译成机器码时对照常量表处理成了立即数(立即数可能和执行代码在一个地字节里,所以也可能连代码空间都不占用)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
woshiyanzhen1
2012-10-29
知道答主
回答量:21
采纳率:100%
帮助的人:5.7万
展开全部
常量是不占用空间的,是用一个标志来标志这个常量的。例如宏定于#define PI 3.14这里的PI就是常量。这个常量在编译期间就已经展开了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanfustudio
2011-12-05 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3773万
展开全部
谁说不分配存储空间了,不是在数据段的静态存储区吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
longinus_dean
2011-12-05 · TA获得超过2282个赞
知道小有建树答主
回答量:1097
采纳率:50%
帮助的人:1528万
展开全部
常量有空间,不一定在哪,比如说如果函数内的局部常量的话其实就在函数堆栈里面⋯⋯只是不允许你写入而已
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式