为了账号安全,请及时绑定邮箱和手机立即绑定

C语言中字符串常量要占内存,那普通的常量呢?例如整型常量

C语言中字符串常量要占内存,那普通的常量呢?例如整型常量

慕桂英546537 2019-04-14 11:18:22
如inti;i=6;这里我知道系统要为变量i分配4个字节,那6这个整形常量还需要单独分配内存吗?还是说6不用再单独分配内存,而只是作为一个整数存在i这个变量所占的内存中?因为谭浩强的书上有这样一句原话“在程序中出现的常量是要存放在计算机的存储单元中的。这就必须确定分配给它多少字节,按什么方式存储。例如,程序中有整数12,在VisualC++6.0中会分配给它4个字节,按补码方式存储。”这书上的话不太懂,看着话的意思是就单单一个整数12,也要占4个字节,我如果写inti=12,那是不是总共要占8个字节(i占4个,12占4个?)
查看完整描述

2 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

这个6会作为立即数写死在生成的代码中,不再占据额外的内存
我觉得这种说法太过笼统,要说占内存也可以说占比如生成的代码中会有mov[i],12这样的代码,程序运行过程中代码被映射到内存中,也就是占内存,至于i,如果是全局变量,那么会在程序加载到内存中时,就为i分配四个字节的内存,如果局部变量,程序运行过程中会根据编译生成的代码操作esp算是未局部变量申请内存,函数结束就释放了
                            
查看完整回答
反对 回复 2019-04-14
  • 2 回答
  • 0 关注
  • 494 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信