C语言和C++中符号常量的存储方式和位置
答案:4 悬赏:0 手机版
解决时间 2021-01-03 10:20
- 提问者网友:龅牙恐龙妹
- 2021-01-02 12:27
C语言和C++中 在定义变量和常量的时候就会分配一个内存空间给变量或常量用于存储数据,但是书上说符号常量只是一个符号不占用内存空间,我的问题是,所有数据都必须有存储空间,那么符号常量代表的数据是存储到哪里的呢?
最佳答案
- 五星知识达人网友:duile
- 2021-01-02 12:36
符号常量与常变量的区别:符号常量不占用内存空间,在预编译时就全部由符号常量的值替换了,而常变量占用内存空间,也有数据类型,但是此变量在存在期间是不能重新赋值的。
1、常变量a的定义如下:
const int a = 5;
2、符合常量PI的定义如下:
#define b=3.1;
1、常变量a的定义如下:
const int a = 5;
2、符合常量PI的定义如下:
#define b=3.1;
全部回答
- 1楼网友:西岸风
- 2021-01-02 15:01
#define定义的是符号常量,如果程序比较大,很多子程序都要用到pi,只要改变#define就能改变全部的pi值,一改全改。另外数组里面如果要改变数组大小,可以用符号常量,用变量则不行,所以符号常量在某些方面用起来非常方便
- 2楼网友:狂恋
- 2021-01-02 14:26
当然要占用空间了,就是在常量存储区,你可以让编译器产生map文件看看里面的各个数据的存储分配,书上说的不占内存空间大概是指在有些系统里,常量存储区因为不需要修改,所以是跟代码一起放在非易失性存储器里的
- 3楼网友:梦中风几里
- 2021-01-02 13:11
#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 似乎不包含符号的意思。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯