C语言和C++中符号常量的存储方式和位置

C语言和C++中 在定义变量和常量的时候就会分配一个内存空间给变量或常量用于存储数据,但是书上说符号常量只是一个符号不占用内存空间,我的问题是,所有数据都必须有存储空间,那么符号常量代表的数据是存储到哪里的呢?

当然要占用空间了,就是在常量存储区,你可以让编译器产生map文件看看里面的各个数据的存储分配,书上说的不占内存空间大概是指在有些系统里,常量存储区因为不需要修改,所以是跟代码一起放在非易失性存储器里的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-20
#define PI 3.14
做的事情是将源代码里PI的地方全部用3.14替掉
所以你们老师说符号常量不占空间
你说的也是对的,3.14是占空间的
但这个称为浮点常量,编译器用到的时候会临时给它一块内存空间,用完即销毁

顺便似乎符号常量是中国教材生造的
There are five kinds of tokens: identifiers, keywords, literals, operators, and other separators (ISO 14882)
这里的 literal 似乎不包含符号的意思。本回答被提问者采纳
第2个回答  2016-01-12
符号常量与常变量的区别:符号常量不占用内存空间,在预编译时就全部由符号常量的值替换了,而常变量占用内存空间,也有数据类型,但是此变量在存在期间是不能重新赋值的。
1、常变量a的定义如下:
const int a = 5;
2、符合常量PI的定义如下:
#define b=3.1;
第3个回答  2011-02-19
堆上。
相似回答