c语言中,常量是存放在内存中吗?

有两种观点:1。常量是值不变且不用存放在内存中。2。常量和变量一样也是存放在在内存中的。哪种对?
《c语言程序设计教程,实验与练习》 杨开城 张志坤 编著
人民邮电出版社 (2002年8月第一版) ----该书中的第25页 对常量的定义 :c语言中,值不能被改变并且不用存放在内存中的量称为常量。
《C语言程序设计》 林小茶 编著 中国铁道出版社 -----该书中第15页 写道:与变量一样,常量也是存储在内存中的,

两者矛盾吗??

常量和变量是放在不同的"段"(section)里,程序一旦加载,常量/变量自然都在内存里。

在程序的运行过程中,把需要处理的数据存放在内存储器中,称始终保持不变的数据为“常量”,称存放可变数据的存储器单元为“变量”,其中的数据称为变量的值。

整数是以补码的形式转换为二进制代码存储在计算机中。

实数是以IEEE754标准转回换为二进制代答码存储在计算机中。

字符本质实际也与整数的存储方式相同(先通过ASCII码把字符转换为对应的整数,再按整数以补码形式转换为二进制)。

扩展资料:

在除了‘C/C++’的一些高级程序语言中,‘常量’可以被称作,“在一个信息变化过程中,始终不发生改变的量”,其可以是不随着时间变化的某些量的固定信息;也可以表示为某一数值的字符(或字符串),常被用来标识、测量和比较两者的差异。

但在 ‘C/C++语言中’,‘常量’如果还用‘运行过程中不变的量’来描述,就显得不太准确了,甚至是在具体使用时,这就是一个错误的概念。在 ‘C/C++’中,定义‘指针常量’时,根据‘const ’的位置的不同,可以定义出几个不同的形式,虽然其看起来‘符合常量的概念’,但是在实际运行中,其值或地址值是会发生变化的。所以本质还不是‘常量概念’

参考资料来源:百度百科-常量

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-10-18
关键的是,常量和变量是放在不同的"段"(section)里,程序一旦加载,常量/变量自然都在内存里了。
常量和全程变量,通常放在初始化段;局部变量,通常在栈里;
还有一种情况,比如汇编里的立即数(mov ax, 12),它是直接放在指令里的,也即是代码段里.本回答被提问者采纳
第2个回答  2007-03-20
在程序的运行过程中,把需要处理的数据存放在内存储器中,称始终保持不变的数据为“常量”,称存放可变数据的存储器单元为“变量”,其中的数据称为变量的值。

1.常量

常量是一个命名的数据项,在整个操作过程中其值保持不变。如PI值,即3.1415926535是数值型常量。 VFP定义了如下类型的常量:

数值型常量,如:20,16,100,1
字符型常量,用单引号或双引号括起来的字符串,如:"ABCD"
逻辑型常量,只有两种:.T.和.F.
日期型常量和日期时间型常量,如:{^1999-04-22},{^1999-04-24 10:00am}
2.变�%
第3个回答  2007-03-20
const int a=5;
#define a 5
前者是真正的常量,编译器处理的时候类似于变量,当然也是保存在内存中的。因此编译完成以后实际上是从一个地址当中,取得值“5”。
后者是一个宏定义,编译器会在预编译时,将a替换成5。
第4个回答  2007-03-20
就是保存在内存里面!
任何程序都是这样啊!
只要一运行,他就要把需要的数据载入到内存里面,然后与CPU交互使用!
不然运行速度会很慢的!

c语言中,常量是存放在内存中吗?
在C语言中,常量是程序中指定的固定值,它们在程序执行期间不会改变。这些常量存储在内存中的特定区域,与变量不同,变量的值可以改变。程序一旦加载,常量就会存放在内存中。它们以二进制形式存在于存储器中,无论是整数、实数还是字符。整数通常以补码形式存储,实数则按照IEEE 754标准转换为二进制格式,...

c语言中,常量是存放在内存中吗?
常量和变量是放在不同的"段"(section)里,程序一旦加载,常量\/变量自然都在内存里。在程序的运行过程中,把需要处理的数据存放在内存储器中,称始终保持不变的数据为“常量”,称存放可变数据的存储器单元为“变量”,其中的数据称为变量的值。整数是以补码的形式转换为二进制代码存储在计算机中。实数...

c语言中,常量到底占不占内存空间?
c语言中,常量占内存空间。变量使用前必须先进行定义。在内存中分配一块存储空间给变量,以便以后存储数据。如果定义了多个变量则为多个变量分别分配不同的存储空间。不同类型的变量占用不同大小的存储空间,因为内存极其有限,分配适当的存储空间可以以最少的空间来存储它们,以节省空间。

C语言里为什么字符指针变量指向的字符串常量中的内容是不可取代的?
指向字符串常量的话,这段常量字符串是存储在静态存储区的,内容不能修改。当然你可以让指针指到别的地方

C语言常量问题
常量它也是有地址的,只是和变量存贮的地方不同,但是存储的形式是一样的,就是在内存的地方不同,内存中有专门放常量的,通过存储方法的角度是区分不了变量和常量的,只能通过其存储的值是否变化来区分(以人的角度),和存放的地点不同区分(机器的角度)比如在单片机中,就分为程序区和数据区,它...

C语言如果指针储存常量的地址,那储存常量的空间是怎么算的啊?常量区...
您好,计算机一切数据都放在内存(这儿不讨论硬盘)中,常量也不例外。所谓的常量区就是一块专门腾出来放常量的内存区罢了。计算机每个内存块都有编号,这个编号就是内存块的地址,这个地址CPU可以找得到。在需要用某个常量的地址的时候,CPU就会找到这个常量的所在的内存,记下它的编号,将这个编号数据存入...

为什么&4在c语言中不行呀! 难道常量没有地址吗!
首先,4是常量(且有地址),但在C语言中规定了&只能对变量使用,对常量使用&是没有定义的(也就是说没规定这样的操作是什么意义),所以结果是未知的,有的编译器认定为错,有的认定为对,但是给出的结果也不是你想要的(给出的并不是常量的地址)。

C语言中到变量与内存的关系
—常量字符串就是放在这里的。程序结束后由系统释放。5、程序代码区—存放函数体(类成员函数和全局函数)的二进制代码。C中,宏定义的常量并不会分配空间,而是在代码预编译时替换这个宏。而const修改的常量,需要根据这个常量定义而定,比如如果是全局数据则会在全局区分配空间,而局部数据会在栈区分配...

c语言常量 占内存吗?
不占内存!!!比如你定义了个 #define P 3.1415 这个是完全不占内存的!在进行编译的时候编译器会把程序里所有 P 都改成3.1415 的!其实在C 语言里的#define 是不太符合“常量”这个名字的。。。在C++ 里用const 定义的那才叫真正的常量!值不可以改变,是占内存的!

C语言中变量与常量的概念是什么?
具体说明:1、在程序执行过程中,其值不发生改变的量称为常量。①直接常量 整型常量:12、0、-3;实型常量:4.6、-1.23;字符常量:‘a’、‘b’。②符号常量 标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。符号常量:用标示符代表一个常量。在C语言中...

相似回答