c语言中,常量是存放在内存中吗?
《c语言程序设计教程,实验与练习》 杨开城 张志坤 编著
人民邮电出版社 (2002年8月第一版) ----该书中的第25页 对常量的定义 :c语言中,值不能被改变并且不用存放在内存中的量称为常量。
《C语言程序设计》 林小茶 编著 中国铁道出版社 -----该书中第15页 写道:与变量一样,常量也是存储在内存中的,
两者矛盾吗?? 展开
常量和变量是放在不同的"段"(section)里,程序一旦加载,常量/变量自然都在内存里。
在程序的运行过程中,把需要处理的数据存放在内存储器中,称始终保持不变的数据为“常量”,称存放可变数据的存储器单元为“变量”,其中的数据称为变量的值。
整数是以补码的形式转换为二进制代码存储在计算机中。
实数是以IEEE754标准转回换为二进制代答码存储在计算机中。
字符本质实际也与整数的存储方式相同(先通过ASCII码把字符转换为对应的整数,再按整数以补码形式转换为二进制)。
扩展资料:
在除了‘C/C++’的一些高级程序语言中,‘常量’可以被称作,“在一个信息变化过程中,始终不发生改变的量”,其可以是不随着时间变化的某些量的固定信息;也可以表示为某一数值的字符(或字符串),常被用来标识、测量和比较两者的差异。
但在 ‘C/C++语言中’,‘常量’如果还用‘运行过程中不变的量’来描述,就显得不太准确了,甚至是在具体使用时,这就是一个错误的概念。在 ‘C/C++’中,定义‘指针常量’时,根据‘const ’的位置的不同,可以定义出几个不同的形式,虽然其看起来‘符合常量的概念’,但是在实际运行中,其值或地址值是会发生变化的。所以本质还不是‘常量概念’
参考资料来源:百度百科-常量
常量和全程变量,通常放在初始化段;局部变量,通常在栈里;
还有一种情况,比如汇编里的立即数(mov ax, 12),它是直接放在指令里的,也即是代码段里.
1.常量
常量是一个命名的数据项,在整个操作过程中其值保持不变。如PI值,即3.1415926535是数值型常量。 VFP定义了如下类型的常量:
数值型常量,如:20,16,100,1
字符型常量,用单引号或双引号括起来的字符串,如:"ABCD"
逻辑型常量,只有两种:.T.和.F.
日期型常量和日期时间型常量,如:{^1999-04-22},{^1999-04-24 10:00am}
2.变�%
#define a 5
前者是真正的常量,编译器处理的时候类似于变量,当然也是保存在内存中的。因此编译完成以后实际上是从一个地址当中,取得值“5”。
后者是一个宏定义,编译器会在预编译时,将a替换成5。
任何程序都是这样啊!
只要一运行,他就要把需要的数据载入到内存里面,然后与CPU交互使用!
不然运行速度会很慢的!