关于Const和Define的区别

通过查阅书籍我了解了两者的基本区别,就是#DefinePI3.14//是定义符号变量而ConstfloatPI=3.14常变量。定义符号变量用#define指令,它是预编... 通过查阅书籍我了解了两者的基本区别,就是#Define PI 3.14 //是定义符号变量 而Const float PI=3.14
常变量。 定义符号变量用#define 指令,它是预编译指令。在预编译后符号常量不存在全部变成3.14 对符号常量的名字是不分配存储单元(这个不分配存储单元我就有点费解 不是很清晰)常变量是占有存储单元的有变量值。 使用角度说常变量有符号变量的有点,而且使用方便、
我最不明白的地方是符号变量不占用存储空间而常变量占用存储空间,可是却说常变量要优于符号变量。。这里很疑惑,可能是我的基础知识薄弱,不清晰存储空间的概念,所以真心求助。帮我解释清楚为什么是占用存储空间的要比不占用存储空间的要好。。。。另外求大神给小弟指点下存储地址。希望通俗下些。这样能便于小弟的理解。。
展开
 我来答
小溪趣谈电子数码
高粉答主

2019-11-16 · 专注解答各类电子数码疑问
小溪趣谈电子数码
采纳数:2103 获赞数:584706

向TA提问 私信TA
展开全部

一、表达意思不同

1、Const:n. 常量,常数; (Const)人名;(罗)康斯特

2、Define:vt. 定义;使明确;规定、n. (Define)人名;(英)德法恩;(葡)德菲内

二、词性不同

1、Const:通常作名词。

例句:For structures and unions to be modifiable lvalues, they must not have any members with the const attribute. 

如果要使结构或者联合类型为可更改左值,那么它们不能包含任何具有常量属性的成员。

2、Define:既可以作及物动词,也可以作名词。

例句:So how do you define it? 

你是怎么定义它的?

扩展资料:

“Define”的近义词:regulate

1、读音:英 [ˈreɡjuleɪt] 、美 [ˈreɡjuleɪt] 

2、表达意思:vt. 调节,规定;控制;校准;有系统地管理

3、相关短语:

REG regulate 控制 ; 校准 ; 节制 ; 调节

Voltage regulate 电压调节方式 ; 电压调节 ; 电压调理方式 ; 速度调节

regulate blood 调节血液 ; 规管血 ; 调节血 ; 正在翻译

4、例句:We have to learn to regulate emotions in our life. 

在生活中我们要学会调节自己的情绪。

AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲、导入文档内容”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表... 点击进入详情页
本回答由AiPPT提供
zhenimei100
推荐于2017-11-26 · TA获得超过921个赞
知道小有建树答主
回答量:586
采纳率:0%
帮助的人:358万
展开全部
说的很明确啊,符号变量不分配内存,常变量分配内存。
你定义一个符号变量:#Define PI 3.14

然后你的程序例如是这样的:float a=PI*PI;定义了一个float变量a,其值是PI*PI。然后你的这个程序经过预编译,变成了:float a=3.14*3.14;3.14原型替换了PI,所以不需要为PI这个符号变量分配内存,定义符号变量的意义只是在于方便理解,你看到3.14这个值不一定想到他是圆周率,但是看到PI你就知道他是3.14.
常变量其实和普通变量一样,都是需要分配内存的,但是常变量的值是不能改变的。
为什么说常变量优于符号变量,因为常变量安全:
例如:你定义一个符号变量#Define PI 3.14+3.14
然后你的程序例如是这样的:float a=PI*PI;定义了一个float变量a,其值是PI*PI。然后你的这个程序经过预编译,变成了:float a=3.14+3.14*3.14+3.14; 3.14+3.14原型替换了PI。
如果你定义常变量:Const float PI=3.14+3.14;如果你的程序:float a=PI*PI;定义了一个float变量a,其值是PI*PI。然后你的这个程序经过预编译,变成了:float a=(3.14+3.14)*(3.14+3.14);
所以常变量更安全,不会出现上面的歧义。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lampzhou
2014-03-10 · TA获得超过707个赞
知道小有建树答主
回答量:1208
采纳率:56%
帮助的人:621万
展开全部
先说说const,const是写给我们看的。比如#Define PI 3.14 ,编译的时候程序已经不存在PI,就是编译的时候已经将所有的PI替换成为3.14.。
const的话就是有数据类型,发生错误的概率比较小
更多追问追答
追问
非常感谢你的回答,便于我的理解,不过上面那位的回答真心特别透彻,对了我还想请教下
#define PI 3.14 //预处理后 占用代码段空间
const float PI=3.14; //本质上还是一个 float,占用数据段空间
我对代码段空间 和数据段空间不是很清晰能给讲解下么 谢谢
追答
代码段空间就是代码存放的空间,代码编译后并不是像我们所见的那么语言化,应该知道机器语言吧。编译就是把我们的程序段编译成二进制的机器语言,这些二进制代码就存储在代码空间,代码空间一旦编译完就是固定不变的。
数据段空间就是存储数据用的,比如程序里有 int i ;那么相应的就会在数据空间里开辟一个int空间用于存储数据。
不知道这样讲还明白不?这些纯属个人的理解,也可能有些出入。。
学过单片机的话这个问题应该很好明白。单片机里面的ROM和RAM空间就是类似这个,再大一点类比的话就好比电脑的操作系统与程序(不是很恰当)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式